布局android的动态变化

时间:2013-02-12 04:14:56

标签: android android-layout visibility expandablelistview android-gridview

我有几个元素 - 按照相同的顺序排列如下: textview,textview,滑动条,按钮,gridview,按钮,gridview,按钮。 当单击上面的按钮时,我切换gridview的可见性。早些时候我遇到了gridview隐藏在它下面的所有内容的问题,所以我为按钮分配了权重,但gridview(虽然可滚动)看起来非常紧凑。如何增加gridview的宽度,以便下面的元素保持它们的相对位置并显示在它们应该的位置。(我希望基本上单击按钮时可扩展列表的行为)

    <TextView
        android:id="@+id/text_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal|center_vertical"
        android:layout_marginTop="20dip"        
        android:layout_marginLeft="10dip"
        android:text="Select Price Range"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:textSize="15sp" />


    <LinearLayout 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical" >        
        <LinearLayout
            android:id="@+id/seekBar_wrapper"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:layout_gravity="center_horizontal"
            android:layout_marginTop="10dip"
            android:padding="10dip"
            />

        <RelativeLayout
            android:id="@+id/absMinMax_holder"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:padding="10dip"
           android:layout_weight="1"
            >
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/absMinCarVal"
                android:layout_alignParentLeft="true"
                android:textSize="14sp" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/absMaxCarVal_above"
                android:textSize="14sp"
                android:layout_alignParentRight="true" />
        </RelativeLayout>

        <RelativeLayout
            android:id="@+id/minMax_holder"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:paddingLeft="40dip"
            android:paddingRight="40dip"
            android:paddingTop="10dip"
            android:paddingBottom="10dip"
            >
            <TextView
                android:id="@+id/minVal"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/absMinCarVal"
                android:layout_alignParentLeft="true"
                android:textSize="18sp" />

            <TextView
                android:id="@+id/value_seperator"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/value_seperator"
                android:layout_centerHorizontal="true"
                android:textSize="22sp" />

            <TextView
                android:id="@+id/maxVal"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/absMaxCarVal"
                android:textSize="18sp"
                android:layout_alignParentRight="true" />
        </RelativeLayout>
    </LinearLayout>
<!--    <ScrollView 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"> -->
        <LinearLayout 
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:layout_weight="1" > 

            <Button 
                android:id="@+id/car_make"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="Car Make"
                android:gravity="left"
                android:textSize="18sp"
                android:layout_marginBottom="10dp"/>


             <GridView 
                android:id="@+id/make_gridview"
                android:layout_width="match_parent" 
                android:layout_height="wrap_content"
                android:columnWidth="90dp"
                android:numColumns="auto_fit"
                android:verticalSpacing="10dp"
                android:horizontalSpacing="10dp"
                android:stretchMode="columnWidth"
                android:gravity="center"
                android:visibility="gone"
                android:layout_weight="1"
                android:layout_marginBottom="10dp"/>                            

            <Button 
                android:id="@+id/car_models"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="Car Models"
                android:gravity="left"
                android:textSize="18sp"
                android:layout_marginBottom="20dp"/>

            <GridView 
                android:id="@+id/models_gridview"
                android:layout_width="match_parent" 
                android:layout_height="wrap_content"
                android:columnWidth="90dp"
                android:numColumns="auto_fit"
                android:verticalSpacing="10dp"
                android:horizontalSpacing="10dp"
                android:stretchMode="columnWidth"
                android:gravity="center"
                android:visibility="gone"
                android:layout_weight="1"
                android:layout_marginBottom="10dp"/>        

        </LinearLayout>
    <!-- </ScrollView>   -->
    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:text="Search"
        android:textSize="18sp" />

<TextView android:id="@+id/text_view" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center_horizontal|center_vertical" android:layout_marginTop="20dip" android:layout_marginLeft="10dip" android:text="Select Price Range" android:textAppearance="?android:attr/textAppearanceSmall" android:textSize="15sp" /> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" > <LinearLayout android:id="@+id/seekBar_wrapper" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:layout_gravity="center_horizontal" android:layout_marginTop="10dip" android:padding="10dip" /> <RelativeLayout android:id="@+id/absMinMax_holder" android:layout_width="fill_parent" android:layout_height="wrap_content" android:padding="10dip" android:layout_weight="1" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/absMinCarVal" android:layout_alignParentLeft="true" android:textSize="14sp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/absMaxCarVal_above" android:textSize="14sp" android:layout_alignParentRight="true" /> </RelativeLayout> <RelativeLayout android:id="@+id/minMax_holder" android:layout_width="fill_parent" android:layout_height="wrap_content" android:paddingLeft="40dip" android:paddingRight="40dip" android:paddingTop="10dip" android:paddingBottom="10dip" > <TextView android:id="@+id/minVal" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/absMinCarVal" android:layout_alignParentLeft="true" android:textSize="18sp" /> <TextView android:id="@+id/value_seperator" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/value_seperator" android:layout_centerHorizontal="true" android:textSize="22sp" /> <TextView android:id="@+id/maxVal" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/absMaxCarVal" android:textSize="18sp" android:layout_alignParentRight="true" /> </RelativeLayout> </LinearLayout> <!-- <ScrollView android:layout_width="wrap_content" android:layout_height="wrap_content"> --> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:layout_weight="1" > <Button android:id="@+id/car_make" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Car Make" android:gravity="left" android:textSize="18sp" android:layout_marginBottom="10dp"/> <GridView android:id="@+id/make_gridview" android:layout_width="match_parent" android:layout_height="wrap_content" android:columnWidth="90dp" android:numColumns="auto_fit" android:verticalSpacing="10dp" android:horizontalSpacing="10dp" android:stretchMode="columnWidth" android:gravity="center" android:visibility="gone" android:layout_weight="1" android:layout_marginBottom="10dp"/> <Button android:id="@+id/car_models" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Car Models" android:gravity="left" android:textSize="18sp" android:layout_marginBottom="20dp"/> <GridView android:id="@+id/models_gridview" android:layout_width="match_parent" android:layout_height="wrap_content" android:columnWidth="90dp" android:numColumns="auto_fit" android:verticalSpacing="10dp" android:horizontalSpacing="10dp" android:stretchMode="columnWidth" android:gravity="center" android:visibility="gone" android:layout_weight="1" android:layout_marginBottom="10dp"/> </LinearLayout> <!-- </ScrollView> --> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:text="Search" android:textSize="18sp" />

1 个答案:

答案 0 :(得分:0)

如果您使用tableLayout并根据需要创建表gonevisible的行,则会更容易。这将产生可扩展列表的效果。请随时提出疑问