【问题标题】:dynamic change in layout android布局android的动态变化
【发布时间】:2013-01-27 07:53:18
【问题描述】:

我有一些元素以相同的顺序排列如下: 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" />

【问题讨论】:

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


    【解决方案1】:

    如果您改用 tableLayout 并根据需要制作表格的行 gonevisible 会更容易。这将产生可扩展列表的效果。有任何疑问请随时提出

    【讨论】:

    • 不,'这没有帮助。因为我的数据不是静态的,所以我不能有表格布局。
    • 我用动态数据实现了它。您可以通过编程方式创建表和添加数据
    • 我也做了同样的事情并且有代码,但它可能很难消化,因为它还有一些其他功能,所以没有发布它。这个概念很简单,也很容易实现。我有一些 Db 访问权限,并且有两个可扩展列表,其中根据用户选择仅显示 1 个(无线电 btn),所以我的代码有点长,这就是我没有发布它的原因
    猜你喜欢
    • 2023-02-13
    • 1970-01-01
    • 1970-01-01
    • 2013-07-22
    • 1970-01-01
    • 2018-01-02
    • 2013-06-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多