【问题标题】:Android Linear Layout - How to handle gravity with four rowsAndroid 线性布局 - 如何处理四行重力
【发布时间】:2015-02-10 00:15:46
【问题描述】:

我有一个线性布局,最初设置为以 3x3 格式显示 9 个图像。我正在使用 android:layout_gravity="right|top" 等...来正确定位我的图像(如下面的 XML 所示)。

我需要添加另一行,即跨 3 张图像,向下 4 张图像。新的“奖励”行给我带来了一个问题,我看不到如何正确定位图像。在当前设置下,它们与第三行重叠。

所以,问题是,我怎样才能正确地使用线性布局来定位 3 跨和 4 向下的图像网格。我原以为不需要使用 gridview 就可以了。

我的 XML 布局代码如下。

一如既往,非常感谢任何帮助!

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity$PlaceholderFragmentMain">


<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:id="@+id/containerMainX"
    android:layout_width="match_parent" android:layout_height="match_parent"
    tools:context=".MainActivity" tools:ignore="MergeRootFrame"
    android:fitsSystemWindows="true"
    android:weightSum="5"
    android:layout_above="@+id/adViewMain">

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:layout_gravity="center"
        android:weightSum="3" >

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:id="@+id/imageViewTopLeft"
            android:padding="6dip"
            android:layout_gravity="left|top" />

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:id="@+id/imageViewTopCenter"
            android:padding="6dip"
            android:layout_gravity="center|top" />

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:id="@+id/imageViewTopRight"
            android:padding="6dip"
            android:layout_gravity="right|top" />

    </LinearLayout>

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_gravity="center"
        android:layout_weight="1"
        android:weightSum="3" >

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:id="@+id/imageViewCenterLeft"
            android:padding="6dip"
            android:layout_gravity="left|center" />

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:id="@+id/imageViewCenterCenter"
            android:padding="6dip"
            android:layout_gravity="center|center" />

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:id="@+id/imageViewCenterRight"
            android:padding="6dip"
            android:layout_gravity="right|center" />

    </LinearLayout>

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_gravity="center"
        android:layout_weight="1"
        android:weightSum="3" >

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:id="@+id/imageViewBottomLeft"
            android:padding="6dip"
            android:layout_gravity="left|bottom" />

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:id="@+id/imageViewBottomCenter"
            android:padding="6dip"
            android:layout_gravity="center|bottom" />

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:id="@+id/imageViewBottomRight"
            android:padding="6dip"
            android:layout_gravity="right|bottom" />

    </LinearLayout>

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_gravity="center"
        android:layout_weight="1"
        android:weightSum="3" >

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:id="@+id/imageViewBonusLeft"
            android:padding="6dip"
            android:layout_gravity="left|bottom" />

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:id="@+id/imageViewBonusCenter"
            android:padding="6dip"
            android:layout_gravity="center|bottom" />

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:id="@+id/imageViewBonusRight"
            android:padding="6dip"
            android:layout_gravity="right|bottom" />

    </LinearLayout>

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:id="@+id/imageViewGameBackButton"
        android:padding="6dip"
        android:layout_gravity="left|bottom" />


</FrameLayout>


</RelativeLayout>

【问题讨论】:

    标签: android-layout imageview position android-linearlayout gravity


    【解决方案1】:

    设法弄清楚...垂直线性布局(权重总和为 4)包含 3 个水平线性布局,每个都处理自己的权重,并且图像视图没有重力......

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_gravity="center"
        android:layout_weight="1"
        android:weightSum="3" >
    
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:id="@+id/imageViewTopLeft"
            android:padding="6dip"
            />
    
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:id="@+id/imageViewTopCenter"
            android:padding="6dip"
            />
    
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:id="@+id/imageViewTopRight"
            android:padding="6dip"
            />
    
    </LinearLayout>
    
    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_gravity="center"
        android:layout_weight="1"
        android:weightSum="3" >
    
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:id="@+id/imageViewCenterLeft"
            android:padding="6dip"
            />
    
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:id="@+id/imageViewCenterCenter"
            android:padding="6dip"
             />
    
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:id="@+id/imageViewCenterRight"
            android:padding="6dip"
            />
    
    </LinearLayout>
    
    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_gravity="center"
        android:layout_weight="1"
        android:weightSum="3" >
    
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:id="@+id/imageViewBottomLeft"
            android:padding="6dip"
            />
    
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:id="@+id/imageViewBottomCenter"
            android:padding="6dip"
            />
    
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:id="@+id/imageViewBottomRight"
            android:padding="6dip"
            />
    
    </LinearLayout>
    
    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_gravity="center"
        android:layout_weight="1"
        android:weightSum="3" >
    
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:id="@+id/imageViewBonusLeft"
            android:padding="6dip"
            />
    
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:id="@+id/imageViewBonusCenter"
            android:padding="6dip"
            />
    
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:id="@+id/imageViewBonusRight"
            android:padding="6dip"
            />
    
    </LinearLayout>
    

    【讨论】:

      猜你喜欢
      • 2012-10-05
      • 1970-01-01
      • 2017-11-20
      • 1970-01-01
      • 2012-06-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多