【问题标题】:Android how to use auto-layout to move other views when a view is hidden?Android如何在隐藏视图时使用自动布局来移动其他视图?
【发布时间】:2014-04-17 15:16:22
【问题描述】:

我想在其中一个被隐藏时制作可调整大小的视图。在下面的link 中已经针对 iOS 提出了这个问题。我想做安卓版。任何帮助表示赞赏。我想在将可见性隐藏设置为计数和折扣后为三个 TextViev 添加可用空间:位置、统计名称、价格

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="1dp"
    android:gravity="center"
    android:orientation="horizontal"
    android:paddingBottom="10dp"
    android:paddingLeft="5dp"
    android:paddingTop="30dp"
    android:weightSum="100" >

    <TextView
        style="@style/list_titles_style"
        android:layout_weight="10"
        android:text="@string/position" />

    <TextView
        style="@style/list_titles_style"
        android:layout_weight="35"
        android:paddingLeft="15dp"
        android:text="@string/stat_name" />

    <TextView
        style="@style/list_titles_style"
        android:layout_weight="20"
        android:text="@string/price" />

    <TextView
        android:id="@+id/count_label"
        style="@style/list_titles_style"
        android:layout_weight="10"
        android:visibility="invisible"
        android:text="@string/count" />

    <TextView
        android:id="@+id/discount_label"
        style="@style/list_titles_style"
        android:visibility="invisible"
        android:layout_weight="25"
        android:text="@string/discount" />
</LinearLayout>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_marginBottom="2dp"
    android:layout_marginLeft="2dp"
    android:layout_marginRight="2dp"
    android:layout_marginTop="1dp"
    android:background="@drawable/border_layout"
    android:orientation="horizontal" >

    <ListView
        android:id="@+id/stats_listview"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_margin="10dp"
        android:layout_marginBottom="5dp"
        android:divider="@drawable/list_divider"
        android:dividerHeight="2dp"
        android:paddingBottom="0dp"
        android:paddingLeft="10dp"
        android:paddingTop="0dp" />
</LinearLayout>

我的风格是:

<style name="list_titles_style">
    <item name="android:layout_width">0dp</item>
    <item name="android:layout_height">match_parent</item>
    <item name="android:textColor">@color/Blue</item>
    <item name="android:gravity">center</item>
    <item name="android:textSize">18sp</item>
</style>

【问题讨论】:

    标签: android xml view hidden


    【解决方案1】:

    您可以使用带有 match_parent 参数的 LinearLayout 来实现这一点,具体取决于您想要的方向。因此,您可以为每个子视图设置权​​重,并放置一个存根视图以扩大尺寸。

    请注意,如果您使用 INVISIBLE 标志隐藏视图,它们将保留空间,而使用 GONE 就像视图从未存在过一样。

    希望对您有所帮助。

    【讨论】:

      【解决方案2】:

      我已经浏览了提供的链接...要删除左侧视图,只需在您的 xml 布局文件中为该视图设置 android:visibility="gone"...如果您想以编程方式删除,请尝试 view.setVisibility(View.GONE);...。

      【讨论】:

        猜你喜欢
        • 2013-08-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-18
        • 1970-01-01
        • 1970-01-01
        • 2014-04-04
        • 1970-01-01
        相关资源
        最近更新 更多