2

我在我的活动的主要布局 xml 中有一个这样的网格布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:id="@+id/parentLayout"
    android:layout_gravity="right">

    <GridView 
        android:id="@+id/gridview"
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"
        android:background="#AAAAAA"
        android:columnWidth="90dp"
        android:numColumns="3"
        android:verticalSpacing="10dp"
        android:horizontalSpacing="10dp"
        android:stretchMode="none"
        />

</LinearLayout>

我通过膨胀以下内容用 6 个图标填充它:

<?xml version="1.0" encoding="utf-8"?>
<ImageView
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/searchIcon"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:contentDescription="@string/searchIcon"/>

我想要的是网格布局在线性布局中右对齐,并且它只是包装其内容。我通过给它一个不同的颜色背景来测试它。layout_height="wrap_content" 工作正常,但宽度似乎没有效果。结果是这样的:

wrap_content 的屏幕截图没有按我的预期工作

有任何想法吗?

在此先感谢,斯蒂芬

4

2 回答 2

0

在 LinearLayout 中使用android:gravity="right"而不是 LinearLayout ........

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:id="@+id/parentLayout"

    android:gravity="right"> //<-----------------------
  • android:gravity 设置其使用的 View 内容的重力。
  • android:layout_gravity 设置视图或布局在其父级中的重力。

用于测试

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" android:layout_height="fill_parent"
    android:orientation="vertical" android:id="@+id/parentLayout"

    android:gravity="right">

    <TextView android:id="@+id/gridview" android:layout_width="wrap_content"
        android:layout_height="wrap_content" android:background="#AAAAAA"
        android:text="ewewqe" />

</LinearLayout>

也看到这不是答案,而是看到

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal"
    android:id="@+id/parentLayout"
    android:layout_gravity="right"
    android:gravity="right" android:weightSum="1">

    <GridView
        android:id="@+id/gridview"
        android:layout_height="wrap_content"
        android:layout_width="0dp"
        android:background="#AAAAAA"
        android:columnWidth="90dp"
        android:numColumns="3"
        android:verticalSpacing="10dp"
        android:horizontalSpacing="10dp"
        android:stretchMode="none"
        android:layout_weight=".5" />

</LinearLayout>
于 2012-06-23T12:25:03.603 回答
0

android:gravity="right"在 GridView 中插入

<GridView 
  ......
  .....
  android:gravity="right" />
于 2012-06-23T12:25:57.697 回答