为什么我不能在线性布局中设置布局重量?

时间:2013-08-19 08:58:49

标签: android android-layout android-linearlayout

我有一个布局文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<ScrollView
    android:id="@+id/scrollView1"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="2"
    android:fillViewport="true"
    android:gravity="top" >

    <LinearLayout
        android:id="@+id/foodItemActvity_linearLayout_fragments"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        <LinearLayout
            android:id="@+id/foodItemActvity_linearLayout_fragments_row1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal" 
            android:weightSum="2">
        </LinearLayout>
    </LinearLayout>
</ScrollView>

现在在我的代码中,我以编程方式将2个片段添加到名为fragments_row1

的LinearLayout中

但是在我的片段的布局文件中,我无法设置线性布局的权重?我希望两个碎片以50%的重量布局相互展示。

以下是我的两个片段布局的代码:

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

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_vertical"
    android:gravity="center"
    android:text="IMAGE" />

<ImageView
    android:id="@+id/fragment_image_imageView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:contentDescription="Product Image"
    android:src="@drawable/call_waiter_icon" />

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

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Text Box" />

我想要这个等价,但我需要以编程方式添加片段。

 <LinearLayout
            android:id="@+id/foodItemActvity_linearLayout_fragments_row1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:weightSum="2" >

            <fragment
                android:id="@+id/fragment1"
                android:name="dds.ImageFragment"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"

                tools:layout="@layout/fragment_dds_image" />

            <fragment
                android:id="@+id/fragment2"
                android:name="dds.RatingFragment"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                tools:layout="@layout/fragment_dds_rating" />
        </LinearLayout>

编辑:

      <LinearLayout
            android:id="@+id/foodItemActvity_linearLayout_fragments_row1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:weightSum="2" >

            <FrameLayout
                android:id="@+id/frame1"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1" >
            </FrameLayout>

            <FrameLayout
                android:id="@+id/frame2"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1" >
            </FrameLayout>
        </LinearLayout>

以及添加片段的代码

getSupportFragmentManager().beginTransaction().add(R.id.frame1, frag1, "fragment_grandchild1" + fragCount).commit();        
getSupportFragmentManager().beginTransaction().add(R.id.frame2, frag2, "fragment_grandchild2" + fragCount).commit();

0 个答案:

没有答案