怎么了家伙,只是一个简单的问题。我试图让我的GridView成为其父亲的中心,这是一个RelativeLayout。我希望整个网格居中,而不是项目。从我所看到的,默认对齐是“左对齐”,并且很难改变这种行为。我尝试了其他SO问题中提出的其他一些解决方案here以及其他问题。这似乎是微不足道的事情,它应该不是那么令人头痛。我尝试在水平方向的LinearLayout中包装GridView,但无济于事。
我发现的唯一的半解决方法是弄乱左右填充,但即使这种方法也会留下太多的空白空间。
此图像在我更改填充之前
这张图片是在我用填充物搞砸之后,但是再次......看起来有点hackish而不是我正在寻找的东西。我正在寻找没有额外填充物的冲洗中心
这种方法不切实际的另一个原因是由于额外的空间,选择器看起来太大了......如下图所示
对此的任何帮助都会很棒,谢谢!
布局代码
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/weatherFragRoot"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<GridView
android:id="@+id/menuGridView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:background="@drawable/weathermate_lv_background"
android:gravity="center_horizontal"
android:listSelector="@drawable/list_selector"
android:numColumns="3"
android:paddingLeft="30dp"
android:paddingRight="5dp"
android:stretchMode="columnWidth"
android:visibility="invisible" >
</GridView>
</RelativeLayout>
修改
根据用户的建议,我将每个网格项目行集中在它自己的相对布局中......这给了我正在寻找的结果!以下是反映解决方案的更新XML文件
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/weatherFragRoot"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<GridView
android:id="@+id/menuGridView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:background="@drawable/weathermate_lv_background"
android:gravity="center_horizontal"
android:listSelector="@drawable/list_selector"
android:numColumns="3"
android:stretchMode="columnWidth"
android:visibility="invisible" >
</GridView>
</RelativeLayout>
这是网格行的布局。正如你所看到的,对我有用的是将方向设置为Horizontal,并为每个孩子添加android:layout_centerHorizontal =“true”。
<?xml version="1.0" encoding="utf-8"?>
<ImageView
android:id="@+id/menuItem"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_centerHorizontal="true"
android:background="@android:drawable/ic_menu_add" >
</ImageView>
<TextView
android:id="@+id/tvMenuItemName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/menuItem"
android:layout_centerHorizontal="true"
android:text="Option"
android:textColor="@android:color/white" >
</TextView>
</RelativeLayout>
答案 0 :(得分:0)
答案是将每个网格中的图像和文本视图居中,因为它们具有单独的布局:)