5

GridView の下部に余分なスペース (空の行のようなもの) を追加することはできますか?

GridView の一番下までスクロールすると、50 dp の余分な空きスペースができるようになります。50dpに設定paddingBottomしてみましたが、何も変わらないようでした。

4

5 に答える 5

12

私があなたを正しく理解していれば、次のようになります。

そのための簡単な解決策は、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

于 2014-09-12T07:19:11.810 に答える
1

独自の 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"である必要があります

于 2013-09-26T07:58:22.073 に答える
0

代わりに、コンテナの内側に paddingBottom を追加してみてください。リストビューは画面に表示されない最後の要素の後に追加するため、リストビューの PaddingBottom は機能しません。無限の高さを持っているふりをしています。

もう 1 つの解決策は、RelativeLayout を使用し、高さが固定されているが下と GridView の間にグラフィック要素がないビューを押し込み、GridView をそのビューの layout_above に設定することです。

于 2013-04-12T03:50:37.923 に答える
0

次のようなことを試してください:

<?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同じ結果が得られます。

于 2013-04-12T03:51:25.333 に答える
0

ListView ではフッターを追加しますが、残念ながら GridView ではサポートされていません。必要な高さの空の行を追加することが最もクリーンなソリューションであることをお勧めします。

于 2013-04-12T04:55:27.903 に答える