当前位置: 首页 > 知识库问答 >
问题:

Android如何在一个视图隐藏时使用自动布局来移动其他视图?

林和畅
2023-03-14

我想在其中一个视图隐藏时制作可调整大小的视图。下面的链接已经针对iOS提出了这个问题。我想为Android制作。感谢任何帮助。我想在将可见性设置为隐藏计数和折扣后,为三个TextViev:position、stat_name、price添加空闲空间

<?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>

共有2个答案

鲁靖
2023-03-14

根据需要的方向,可以使用带有match_parent参数的LinearLayout来实现这一点。因此,您可以为每个子视图设置权重,并放置一个存根视图,以便拉伸大小。

请注意,如果你用看不见的旗帜隐藏你的观点,他们会占据空间,而用消失,就好像观点从来没有存在过。

希望有帮助。

袁良弼
2023-03-14

我已经通过提供的链接...要删除左侧视图,只需在xml布局文件中为视图设置android:可见性=“消失”即可。如果你想以编程方式删除,请尝试视图.set可见性(视图.GONE);....

 类似资料:
  • 我已经在IB中设计了我的自定义单元,将其子类化,并将我的插座连接到我的自定义类。我在单元格内容中有三个子视图,它们是:UIView(cdView)和两个标签(titleLabel和emailLabel)。根据每行可用的数据,有时我希望在单元格中显示UIView和两个标签,有时只显示两个标签。我想做的是这样设置约束,如果我将UIView属性设置为hidden,或者将其从superview中删除,则两

  • 我有一个自定义视图CustomLayout(蓝色,自定义UIView),该视图包含3个子视图,通过使用约束(布局锚定)垂直对齐,每个视图按照以下顺序对齐: 1视图:幻灯片(红色,自定义UIView) 我想,当我单击按钮(黄色)时,如果使用动画打开,SlideLayout(红色)的高度大小会增加,如果关闭,则会减少。和其他视图必须在动画期间更改位置,如果SlideLayout增加/减少,则父视图(C

  • 我遇到了自动布局的问题,似乎无法找到应该很容易实现的答案。 我有以下视图层次结构: 标签上的前导/尾随限制使它们在更薄的设备上更高(iPhone 4s vs iPhone 6)。 为了让UIScrollview正常工作,我需要在UIScrollView内部设置UIView的高度约束,以避免出现“不明确的高度”警告。 但在iPhone 4s上运行时,UIView不够高,无法容纳它的子视图。 到目前为

  • 在我的UITableViewCell中,我有两个UIView堆叠在一起。让我们称之为顶部和底部。 俯视图对superview具有前导、尾随和顶部约束。它的高度约束为20。 底部视图对superview具有前导、尾随和底部约束。它的高度约束为20。 顶部和底部具有垂直约束。 以编程方式“隐藏”底部视图(并使顶部视图接触超级视图的底部)的最简单方法是什么?我不想再创建任何约束,因为我确实在情节提要中设

  • 我有一个带有两个标签和一个小图像的表视图单元格。如果标签文本很短,则所有文本都放在一行中,如下所示: 但是,如果标签文本越来越长,图像和第二个标签应该移动到第二行: 我该如何使用自动布局来做到这一点? 第一个标签很简单 - 只需为左侧和顶部添加约束即可。标签始终只有一行,如果文本太长,标签会在中间被截断。 图像必须始终水平位于第二个标签(默认空间)的前面,并且两个标签都垂直居中。图像大小应与标签的

  • 问题内容: 在iOS 11中,a中的隐藏动画的行为已更改,但是我无法在任何地方找到该文档。 iOS 10 iOS 11 两者中的代码是这样的: 如何在iOS 11上还原以前的行为? 问题答案: 只是有同样的问题。该修复程序将添加到动画块中。您要隐藏的物品的容器在哪里? 不确定为什么这在iOS 11中突然成为一个问题,但公平地说,这一直是推荐的方法。