gpt4 book ai didi

android - 在 GridView 中使用 setGravity()

转载 作者:行者123 更新时间:2023-11-30 00:51:44 25 4
gpt4 key购买 nike

我看不懂android:gravity的用法和 setGravity()GridView .

android:gravity

Specifies the gravity within each cell.

center_horizontal - Place object in the horizontal center of its container, not changing its size.

setGravity(int gravity)

Set the gravity for this grid. Gravity describes how the child views are horizontally aligned. Defaults to Gravity.LEFT

gravity int: the gravity to apply to this grid's children

我正在尝试将最后一行居中,如 this question 中所述, 但我无法得到它。

因此,我试图了解 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" />

它的 subview

<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="none"

如果更改了 stretchMode="columnWidth",它就会变成这样

stretchMode="columnWidth"

  • 第一张图片表示子行未正确对齐。
  • 第二张图片表示 child 里面的内容没有正确对齐

那设置gravity有什么用呢?

我尝试了 gridView.setGravity(Gravity.CENTER)

我需要在 GridView 中显示动态项目。

如果我有 3 个项目,如何在中心显示第 3 个项目?

我尝试设置 layout_width="wrap_content" 并将我的 GridView 放在里面

  • LinearLayout 和设置 layout_gravity:center
  • RelativeLayout 和设置 layout_centerInParent=true

两种情况均无效。

我不能使用 TableLayout 因为我需要在滚动到底部时加载更多数据,所以我需要设置 OnScrollListener

提前致谢

最佳答案

将您的 GridView 放入 RelativeLayout 中,然后将 GridViewlayout_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>

因为:

RelativeLayout 让您更好地控制子元素的位置。

更新日期:

尝试改变这两个属性

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

如果您在 GridView android:gravity="right" 中添加,请删除此属性。

关于android - 在 GridView 中使用 setGravity(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40910918/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com