在xml中进行布局,可以以编程方式添加项目进行更改

时间:2014-03-07 08:38:23

标签: android xml android-layout android-fragments

我想在xml中为Fragment类创建一个布局。此布局必须是match_parent宽度和高度。

图片1

enter image description here

在图1中,布局有四个以编程方式添加的项目......

图2

enter image description here

图2中的布局相同,但有6个项目。

这些布局示例都不可滚动,因此如果我添加8个项目,则所有项目都必须适合 屏幕尺寸。

我该怎么做?

3 个答案:

答案 0 :(得分:0)

您可以使用ScrollView 如果你现在使用GridView,ScrollView包含GridView 要么 如果ifContentScrolls模式,则使用over scroll模式。

答案 1 :(得分:0)

您可以使用layout_weight中的LinearLayout属性执行此操作,如下所示......

<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="fill_parent"
        android:layout_height="0dip"
        android:layout_weight="1"
        android:orientation="horizontal" >

        <TextView
            android:layout_width="0dip"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:background="#000000"
            android:text="Menu 1" />

        <TextView
            android:layout_width="0dip"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:background="#FFFFFF"
            android:text="Menu 2" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="0dip"
        android:layout_weight="1"
        android:orientation="horizontal" >

        <TextView
            android:layout_width="0dip"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:background="#FFFFFF"
            android:text="Menu 1" />

        <TextView
            android:layout_width="0dip"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:background="#000000"
            android:text="Menu 2" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="0dip"
        android:layout_weight="1"
        android:orientation="horizontal" >

        <TextView
            android:layout_width="0dip"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:background="#000000"
            android:text="Menu 3" />

        <TextView
            android:layout_width="0dip"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:background="#FFFFFF"
            android:text="Menu 4" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="0dip"
        android:layout_weight="1"
        android:orientation="horizontal" >

        <TextView
            android:layout_width="0dip"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:background="#FFFFFF"
            android:text="Menu 5" />

        <TextView
            android:layout_width="0dip"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:background="#000000"
            android:text="Menu 6" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="0dip"
        android:layout_weight="1"
        android:orientation="horizontal" >

        <TextView
            android:layout_width="0dip"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:background="#000000"
            android:text="Menu 7" />

        <TextView
            android:layout_width="0dip"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:background="#FFFFFF"
            android:text="Menu 8" />
    </LinearLayout>

</LinearLayout>

答案 2 :(得分:0)

您可以简单地执行此操作:按ID引用LinearLayout,并以编程方式添加子项。如果您希望其子项具有相同的高度,请将其高度设置为0px,将其权重设置为相同,例如1。由于它的子节点也是Linearlayouts,你可以毫无问题地将项目manu1,menu2等添加到它们。我不知道你的确切用法,但这是一个开始。