16

我在让 a 的两个孩子LinearLayout具有相同宽度时遇到了一些问题。这就是我得到的:

截屏

这是我的灰色框布局xml:

<LinearLayout 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:weightSum="2"
    android:background="@color/medium_grey"
    >

    <ImageView 
        android:id="@+id/profile_photo"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:src="@drawable/placeholder_profile_photo"
        android:scaleType="fitCenter"
        android:contentDescription="@string/blank"
        android:layout_weight="1"
        />

    <LinearLayout 
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:gravity="center"
        android:layout_weight="1"
        android:layout_gravity="center_vertical"
        android:background="@color/alert"
        >

        <TextView
            android:id="@+id/profile_rate_header"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="Rate User"
            />

        <LinearLayout 
            android:id="@+id/profile_action_rate_user"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:layout_weight="1"
            android:gravity="center"
            >

            <ImageView 
                android:id="@+id/profile_action_rate_up"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/user_rate_up"
                />

            <ImageView 
                android:id="@+id/profile_action_rate_down"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/user_rate_down"
                />

        </LinearLayout>
    </LinearLayout>
</LinearLayout>

我假设设置layout_weight根的孩子的LinearLayoutaweightSum和宽度0dp会产生所需的效果(图像与粉红色的“评价用户”部分大小相同)但事实并非如此。

我错过了什么?

编辑:

这就是我想要的样子

在此处输入图像描述

照片和粉红色的线性布局应该是相等的宽度。

4

5 回答 5

35

android:weightSum="2"应该在两个子 ImageViews 的父级上,而不是在上父级上。或者尝试设置 weightsas0.5并查看它是否有效。

android:layout_width="0dp"此外,当使用这样的权重时,两个图像视图的宽度应该是相同的。

接下来,放大图像以填充空间。详情在这里

于 2013-07-09T08:23:21.293 回答
22

同等重量的孩子

要创建一个线性布局,其中每个孩子在屏幕上使用相同数量的空间,请将每个视图的 android:layout_height 设置为“0dp”(对于垂直布局)或每个视图的 android:layout_width 设置为“0dp”(对于水平布局)。然后将每个视图的 android:layout_weight 设置为“1”。参考:http: //developer.android.com/guide/topics/ui/layout/linear.html

于 2014-08-26T09:16:00.597 回答
2

这是你想要的:

试试这个 xml @boz:它将在所有大小的布局中运行......!

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="fill_parent"
        android:layout_weight=".50"
        android:background="@drawable/ic_launcher" >
    </LinearLayout>

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="fill_parent"
        android:layout_weight=".50"
        android:orientation="vertical" >

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="0dp"
            android:layout_weight="33.33" >
        </LinearLayout>

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="0dp"
            android:layout_weight="33.33"
            android:background="@android:color/darker_gray" >
        </LinearLayout>

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="0dp"
            android:layout_weight="33.33" >
        </LinearLayout>
    </LinearLayout>

</LinearLayout>

我采用两个线性布局(50%,50%),三个子线性布局(33.33%,33.33%,33.33%)。其中三种布局,第二个布局是你的pinkone。

如果还有任何疑问,请询问。

于 2013-07-09T09:09:13.133 回答
1

从您的父视图 ( @+id/profile_action_rate_user) 中删除重量总和。

于 2013-07-08T16:00:06.050 回答
0

你可以使用这样的东西,希望这能满足你的要求。试试这个 xml 。

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

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:background="@color/Black"
        android:gravity="center"
        android:orientation="vertical" 
        android:layout_weight="0.5"
        >

        <TextView
            android:id="@+id/profile_rate_header"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="Rate User"
            />

        <LinearLayout 
            android:id="@+id/profile_action_rate_user"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:gravity="center"
            >

            <ImageView 
                android:id="@+id/profile_action_rate_up"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/close"
                />

            <ImageView 
                android:id="@+id/profile_action_rate_down"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/close"
                />

        </LinearLayout>
    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_weight="0.5"
        android:orientation="vertical" >

        <ImageView
            android:id="@+id/profile_photo"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:scaleType="fitCenter"
            android:src="@drawable/close" />

    </LinearLayout>

</LinearLayout>


</LinearLayout>
于 2013-07-09T09:00:05.293 回答