我无法理解使用android:gravity的setGravity()和GridView。
android:gravity
指定每个单元格内的重力。
center_horizontal - 将对象放在其容器的水平中心,而不是更改其大小。
setGravity(int gravity)
设置此网格的重力。重力描述子视图如何水平对齐。默认为Gravity.LEFT
gravity int :应用于此网格子项的重力
我试图将this question中提到的最后一行居中,但我无法得到它。
因此,我尝试了解android:gravity
和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"
&amp;将我的GridView放在
layout_gravity:center
layout_centerInParent=true
两种情况均无效。
我无法使用TableLayout
,因为我需要在滚动到底部时加载更多数据,因此我需要设置OnScrollListener
提前致谢
答案 0 :(得分:1)
将GridView
放入RelativeLayout
,然后将GridView
的{{1}}媒体资源设为layout_centerInParent
。
true
因为:
<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>
可让您更好地控制孩子的位置。
UpDate:
尝试更改这两个属性
RelativeLayout
如果您添加android:stretchMode="columnWidth"
android:numColumns="2"
GridView
。