我无法理解GridView的android:gravity和setGravity()的使用。
android:gravity
指定每个单元格内的重力。
center_horizontal - 将对象放置在其容器的水平中心,不改变其大小。
setGravity(int gravity)
设置此网格的重力。Gravity 描述了子视图如何水平对齐。默认为 Gravity.LEFT
Gravity int : 应用到这个网格的孩子的重力
我正在尝试使最后一行居中,如本问题中所述,但我无法得到它。
所以,我试图理解android:gravity
and的使用setGravity()
。
我试过这段代码。
<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"
它就会像这样
- 第一个图像表示子行未正确对齐。
- 第二张图片表示孩子内部的内容没有正确对齐
那么设置重力有什么用呢?
我试过了gridView.setGravity(Gravity.CENTER)
。
我需要在 GridView 中显示动态项目。
如果我有 3 个项目,如何在中心显示第 3 个项目?
我尝试设置layout_width="wrap_content"
并将我的 GridView 放在里面
- 线性布局和设置
layout_gravity:center
- 相对布局和设置
layout_centerInParent=true
两种情况都没有奏效。
我不能使用TableLayout
,因为我需要在滚动到底部时加载更多数据,所以我需要设置OnScrollListener
提前致谢