GridView の下部に余分なスペース (空の行のようなもの) を追加することはできますか?
GridView の一番下までスクロールすると、50 dp の余分な空きスペースができるようになります。50dpに設定paddingBottom
してみましたが、何も変わらないようでした。
GridView の下部に余分なスペース (空の行のようなもの) を追加することはできますか?
GridView の一番下までスクロールすると、50 dp の余分な空きスペースができるようになります。50dpに設定paddingBottom
してみましたが、何も変わらないようでした。
私があなたを正しく理解していれば、次のようになります。
そのための簡単な解決策は、Maciej によってここで言及されています: How to add extra space inside at the bottom of a GridView
GridView レイアウトに次を追加するだけです。
<GridView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="50dp"
android:clipToPadding="false"/>
最も重要な部分は、false に設定する必要がある clipToPadding 属性です。
また、このソリューションが言及されている Google のブログ投稿も参照できます: https://plus.google.com/+AndroidDevelopers/posts/LpAA7q4jw9M
独自の GridViewAdapter が ArrayAdapter を拡張し、次のことを実現できます。
@Override
public int getCount() {
return gridArray.size();
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
//...
if (getCount()-1 == position) {
convertView.setPadding(0, 0, 0, 50);
} else {
convertView.setPadding(0, 0, 0, 0);;
}
return convertView;
}
ここで、50 はピクセル単位の下部パディングですView.setPadding(int, int, int, int) を参照してください
GridItemView レイアウトは android:layout_height="wrap_content"である必要があります
代わりに、コンテナの内側に paddingBottom を追加してみてください。リストビューは画面に表示されない最後の要素の後に追加するため、リストビューの PaddingBottom は機能しません。無限の高さを持っているふりをしています。
もう 1 つの解決策は、RelativeLayout を使用し、高さが固定されているが下と GridView の間にグラフィック要素がないビューを押し込み、GridView をそのビューの layout_above に設定することです。
次のようなことを試してください:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:orientation="vertical" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="0dip"
android:layout_weight="1"
android:orientation="vertical" >
<GridView
android:id="@+id/gridUsers"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clipChildren="true"
android:columnWidth="100dp"
android:fastScrollEnabled="true"
android:gravity="center"
android:numColumns="auto_fit"
android:scrollbars="none"
android:stretchMode="columnWidth" >
</GridView>
<TextView
android:id="@android:id/empty"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:padding="10dp"
android:textColor="#f1f1f1"
android:textSize="15sp"
android:textStyle="bold"
android:visibility="gone" >
</TextView>
</LinearLayout>
<LinearLayout
android:id="@+id/linlaProgressBar"
android:layout_width="fill_parent"
android:layout_height="50dp"
android:gravity="center"
android:orientation="horizontal" >
</LinearLayout>
</LinearLayout>
これをアプリで使用LinearLayout
し、 の ID を持つ が、より多くのデータをロードlinlaProgressBar
するときに のコンテナーとして機能します。ProgressBar
この例では a を示していますが、これを aGridView
に置き換えてもListView
同じ結果が得られます。
ListView ではフッターを追加しますが、残念ながら GridView ではサポートされていません。必要な高さの空の行を追加することが最もクリーンなソリューションであることをお勧めします。