【问题标题】:android layout with visibility GONE具有可见性的 android 布局 GONE
【发布时间】:2013-04-16 11:15:31
【问题描述】:

四个视图使用相同的 xml。我只想为view 1 显示线性布局。 我将android:visibility="gone" 放入xml。然后我为view 1做以下事情-

LinearLayout layone= (LinearLayout) view.findViewById(R.id.layone);

layone.setVisibility(View.VISIBLE);

但这不会将可见性设置为可见。

在 xml 中声明 GONE 后是否可以显示视图?

我不想仅仅通过做来转换逻辑,

layone.setVisibility(View.GONE);

在除视图 1 之外的三个视图中。

想法还是cmets?

更新:

我的 xml -

<TextView
                android:id="@+id/layone"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Previous Page"
                android:textColor="#000000"
                android:textSize="16dp"
                android:paddingLeft="10dp"
                android:layout_marginTop="10dp"
                android:visibility="gone" />
         <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="50dp"
            android:orientation="horizontal"
            android:padding="10dp"
            android:gravity="center_vertical"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp"          
            android:tag="PrevEntries"     
            android:id="@+id/laytwo"
            android:layout_marginTop="10dp"
            android:background="@layout/roundedtext"
            android:visibility="gone" >

            <TextView
                android:id="@+id/laythree"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="Previous Page"
                android:textColor="#000000"
                android:textSize="18dp"
                android:gravity="center"
                android:textStyle="bold" />

        </LinearLayout>

【问题讨论】:

  • 查看我的 xml 更新。我不想默认显示这整个。我只希望它显示在我的视图 1 中。

标签: android view show-hide


【解决方案1】:
<TextView
                android:id="@+id/layone"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Previous Page"
                android:textColor="#000000"
                android:textSize="16dp"
                android:paddingLeft="10dp"
                android:layout_marginTop="10dp"
                android:visibility="gone" />

layone 是一个 TextView。
你的 id 弄错了。

LinearLayout layone= (LinearLayout) view.findViewById(R.id.laytwo);// change id here

layone.setVisibility(View.VISIBLE);

应该做的工作。

或像这样更改以显示 TextView:

TextView layone= (TextView) view.findViewById(R.id.layone);

    layone.setVisibility(View.VISIBLE);

【讨论】:

  • 是的,没关系,我希望不显示整个内容,包括文本视图。
  • 那你为什么指的是TextView和LinearLayout呢?不应该工作。
  • textview 在线性布局之上,是单独的标题。
  • 我知道,但你指的是 TextView 的方式是错误的。查看我的编辑。
  • 抱歉给您带来了困惑。这是正确的。我这里只是换了个例子。
【解决方案2】:

这样就完成了:

view = inflater.inflate(R.layout.entry_detail, container, false);
TextView tp1= (TextView) view.findViewById(R.id.tp1);
LinearLayout layone= (LinearLayout) view.findViewById(R.id.layone);
tp1.setVisibility(View.VISIBLE);
layone.setVisibility(View.VISIBLE);

【讨论】:

  • 如果您应该接受这个答案,那么您的问题将显示为已解决,这将对人们有所帮助。干杯!
【解决方案3】:
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/activity_register_header"
    android:minHeight="50dp"
    android:orientation="vertical"
    android:visibility="gone" />

试试这段代码..对我来说,这段代码有效..

【讨论】:

    【解决方案4】:

    Kotlin 风格的方法更简单(示例):

        isVisible = false
    

    完整示例:

        if (some_data_array.details == null){
                    holder.view.some_data_array.isVisible = false}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-01
      • 2016-06-24
      • 1970-01-01
      • 2021-06-21
      相关资源
      最近更新 更多