1

GridViewのandroid:gravitysetGravity()の使い方がわかりません。

android:gravity

各セル内の重力を指定します。

center_horizo​​ntal - サイズを変更せずに、コンテナの水平方向の中央にオブジェクトを配置します。

setGravity(int gravity)

このグリッドの重力を設定します。重力は、子ビューが水平方向にどのように配置されるかを表します。デフォルトは Gravity.LEFT です

gravity int : このグリッドの子に適用する重力

この質問に記載されているように、最後の行を中央に配置しようとしていますが、取得できません。

そこで、 と の使い方を理解しようとしましandroid:gravitysetGravity()

このコードを試しました。

<GridView
     android:id="@+id/grid_view"
     android:stretchMode="none"
     android:numColumns="auto_fit"
     android:columnWidth="140dp"
     android:gravity="right"
     android:layout_width="match_parent"
     android:layout_height="match_parent" />

その子ビュー

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="100dp"
    android:layout_height="wrap_content"
    android:id="@+id/chapter_item_layout"
    android:minHeight="120dp"
    android:background="@color/red">

    <ImageView
        android:id="@+id/thumbnail_image"
        android:layout_width="68dp"
        android:layout_height="68dp"
        android:scaleType="fitXY"
        android:src="@drawable/icon" />

    <TextView
        android:text="TextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:textSize="16sp"
        android:textColor="@color/black"
        android:maxLines="2"
        android:ellipsize="end"
        android:id="@+id/title" />

</LinearLayout>

そしてそれはこのように来ます

ストレッチモード=

を変更するstretchMode="columnWidth"と、このようになります

ストレッチモード=

  • 子行が右揃えされていないことを示す最初の画像。
  • 子の内容が右に揃っていないことを示す 2 番目の画像

では、重力を設定することの用途は何ですか?

やってみgridView.setGravity(Gravity.CENTER)ました。

GridView に動的アイテムを表示する必要があります。

アイテムが3つある場合、3番目のアイテムを中央に表示するにはどうすればよいですか?

GridView を設定しlayout_width="wrap_content"て入れてみました

  • LinearLayout と設定layout_gravity:center
  • RelativeLayout と設定layout_centerInParent=true

どちらの場合も機能しませんでした。

TableLayout一番下までスクロールするとさらにデータをロードする必要があるため使用できないため、 OnScrollListenerを設定する必要があります

前もって感謝します

4

1 に答える 1

1

GridView内部に aを入れてから、のプロパティを にRelativeLayout設定します。GridViewlayout_centerInParenttrue

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <GridView
            android:id="@+id/grid_view"
            android:stretchMode="columnWidth"
            android:numColumns="2"
            android:columnWidth="140dp"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_centerInParent="true" />

</RelativeLayout>

なぜなら :

RelativeLayout子の位置をより適切に制御できます。

アップデート :

この2つのプロパティを変更してみてください

android:stretchMode="columnWidth"
android:numColumns="2"

に追加する場合は、このプロパティを削除しますGridView android:gravity="right"

于 2016-12-01T12:46:21.003 に答える