2根据我的理解,RelativeLayouts没有正确调整大小

时间:2017-02-25 14:59:28

标签: android android-layout android-studio

我对这整个机器人来说都是新手,我在这里遇到了一些麻烦。

我正在关注片段和ViewList的教程。我想为每个RelativeLayout添加两个片段。我也在设置这些RelativeLayouts的layout_weitght,但这似乎不起作用,因为我理解它应该。

以下是添加片段的代码。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    //add fragments
    //get Assessor object passed in intent and createNewInstance of fragment, setting defaults
    Assessor assessor = new Assessor();
    assessor.set_name("TestName");

    user_profile_fragment frag = user_profile_fragment.newInstance(assessor);
    ListFragment fragList = ListFragment.newInstance();

    FragmentManager manager = getSupportFragmentManager();
    FragmentTransaction transaction = manager.beginTransaction();
    transaction.add(R.id.userProfileContainer, frag);
    transaction.add(R.id.listContainer, fragList);
    transaction.commit();

    setContentView(R.layout.activity_main);
}

这是我调用onCreate的活动的xml,并尝试添加片段:

<layout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/layoutContainer"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.example.andre.vehicleasseessing.MainActivity">

    <RelativeLayout
        android:id="@+id/userProfileContainer"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:paddingTop="10dp">
    </RelativeLayout>

    <RelativeLayout
        android:id="@+id/listContainer"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="3"
        android:background="@color/colorAccent">

    </RelativeLayout>
</LinearLayout>

这是输出,目前:

Incorrect output

根据我的理解,设置layout_weight,应该使输出看起来有点不同。用户容器应占据屏幕的四分之一,而列表应占用屏幕的四分之三左右。

我做错了什么?

2 个答案:

答案 0 :(得分:1)

改为使用LinearLayout

使用父线性布局的layout_sum属性,值 4

随后的LinearLayout应根据需要设置布局权重。 在您的情况下,布局权重应分别为 1 3

<强>更新

建议您为每个孩子设置布局高度 0dp 以占用相等的空间。您可以参考here获取更多信息。

答案 1 :(得分:1)

我建议将两个嵌套相对布局的layout_height属性设置为0dp,然后适当地重视权重。