1. ホーム
  2. android

[解決済み] AndroidでListViewの一番上の項目の上(と最後の項目の下)にマージンを追加する

2022-05-04 11:27:05

質問

AndroidのListViewの項目のレイアウトについて、かなり細かい質問です。

上部にタイトルバーがあり、ListViewが画面の残りの部分を占めているアクティビティがあります。ListViewを左、右、上に10dpのパディングで表示したいのですが、ListViewを上にスクロールすると、上の10dpのパディングをカバーしてからフェードエッジの下に消えたいのですが、どうすればいいですか?同様に、一番下までスクロールすると、最後のリスト項目の底と画面の実際の底の間に10dpのパディングで表示されるようにします(なぜかというと、ListViewの周りに突き出ている美しい背景画像があるからです)。

ListView自体にパディングを追加してみましたが、リストをスクロールするとパディングの端の下に消えてしまいます。

私はWeb開発出身なのですが、例えるなら、最初のリストアイテムの上(と最後のリストアイテムの下)にマージンを追加することでしょうか。

どのように解決するのですか?

と書かれていますね。

<ブロッククオート

ListView自体にパディングを追加してみましたが、そうするとリストをスクロールしたときにパディングの端の下に消えてしまうのです。

セット ListView's clipToPadding 属性を false . これにより ListView レイアウトの端まで(パディングの端だけでなく)スクロールさせる。

一例です。

<ListView
    android:id="@+id/list_view"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:divider="@android:color/transparent"
    android:dividerHeight="10.0sp"
    android:padding="16dip"
    android:clipToPadding="false"/>

android:clipToPadding の XML 属性です。 ViewGroup レイアウトとビューのコンテナの基本クラスです。

関連する メソッド呼び出し があります。

public void setClipToPadding (boolean clipToPadding)