[解決済み] ListViewの最終要素に下マージンを追加する
質問
ListViewに複雑なアイテムを追加したいのですが、背景が偶数/奇数で異なり、上下の角が丸くなっているものを追加したいです。以下のような感じです。
ここまでのことはlevel-listで実装しましたが、もう一つやりたいことがあります。 現在、一番下の項目が画面の底に近いところにあります。少しスペースを空けた方が良いと思います。
ListViewに下マージンを追加したくないので、最後のアイテムにだけマージンが必要です。
これを行うために私が見る方法。
フッター
ListViewに空のTextViewでフッターを追加するハックのようなものです。しかし、フッターは非常に不安定なもので、通常notifyDataSetChangedの後に消えてしまい、それを取り戻す方法はありません。
透明なピクセルを持つ画像
デザイナーに頼んで、下部の背景リソースに透明なピクセルを追加してもらいました。残念ながら、この場合、垂直方向のセンタリングが完全に崩れてしまいます。 例えば、このような9patchがあります。
とこんな感じのレイアウト。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<!-- View with background with transparent pixels on bottom -->
<LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content"
android:id="@+id/item"
android:background="@drawable/some_bgr"
android:padding="10dp"
>
<TextView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1"
android:text="Title"
android:layout_gravity="center"
android:textSize="18sp"
/>
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content"
android:text="Detail"
android:layout_gravity="center"
android:textSize="18sp"
/>
</LinearLayout>
<!-- Just for marking place took by view -->
<FrameLayout android:layout_width="match_parent" android:layout_height="match_parent"
android:layout_below="@id/item"
android:background="#88ff55"
/>
</RelativeLayout>
その結果
ご覧の通り、センタリングが効きません。残念です。 (ちなみに、この9patchをTextViewの背景に指定すると、センタリングがうまくいくそうです。もし、このことを説明した記事をご存知でしたら、教えてください)
Adapterの実装で最後のアイテムに下マージンを追加する
これでうまくいくはずなのですが、どういうわけかまだうまくいきません。 この方法は好きではありません。なぜなら、コード内で寸法を変更するのが好きではないからです。
ということで
特定のビットマップとマージンを持つ XML drawable を作成する、という想像上の方法は既にあります。drawable の概念によれば、それは可能であるべきですが、私は実装を見つけることができません。もしかしたら、誰かが知っているかもしれません。
他のアイデアは?
どのように解決するのですか?
あなたの
ListView
を設定します。
paddingBottom
と
clipToPadding="false"
.
<ListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="8dp"
android:clipToPadding="false"
android:scrollbarStyle="outsideOverlay"/>
-
これは
RecyclerView
. -
のみを使用します。
android:scrollbarStyle="outsideOverlay"
は、スクロールバーがパッドされた領域からはみ出さないようにしたい場合にのみ使用してください。
関連
-
[解決済み] 要素を水平方向にセンタリングする方法
-
[解決済み] AndroidのListViewで画像を遅延ロードする方法
-
[解決済み】CSSを使用して、すべてのブラウザでdiv要素を垂直方向に中央に配置するにはどうすればよいですか?
-
[解決済み] Androidでマイナスマージンを使用するのは悪いことですか?
-
[解決済み] AppCompat-v7 21でアクションバー/ツールバーにアイコンを表示する。
-
[解決済み] APKが署名済みかデバッグビルドかを確認するには?
-
[解決済み] Android Lintが翻訳されていない文字列を訴えないようにする。
-
[解決済み] LayoutParamsの高さを密度に依存しないピクセル数でプログラム的に設定する。
-
[解決済み] ブルートゥースアプリケーションのテストにアンドロイドエミュレータを使用するには?
-
[解決済み] 文字列リソースにHTML?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] AndroidでListViewの一番上の項目の上(と最後の項目の下)にマージンを追加する
-
[解決済み] Nexus 4でUSBデバッグモードを見つける方法とオンにする方法
-
[解決済み] FloatingActionButtonのサンプルとサポートライブラリ
-
[解決済み] EclipseのAndroidプロジェクトにライブラリ/JARを追加する
-
[解決済み] Android Studioの「未実装メソッドの追加」機能
-
[解決済み] フラグメント間の値の受け渡し方法
-
[解決済み] RecyclerViewのアイテムに波及効果を追加する
-
[解決済み] Android: xml リソースからの整数値
-
[解決済み] ViewPager2でスワイプを無効にするには?
-
[解決済み] Androidでgridlayoutmanagerを使用してrecyclerviewの最後の要素の下にスペーシングを追加する