android:将“INVISIBLE”设置为TextView,但它仍然显示

时间:2017-04-15 10:21:15

标签: android android-layout

我将“INVISIBLE”设置为TextView,但它仍在显示。

所以我试图解决一些问题。

使用我的代码定义变量:

  1. findPasswordText:我想隐藏的Textview

  2. findPasswordContainer:textview的父级

  3. mainViewGroup:在xml中定义的Root ViewGroup

  4. 首先

    将“VISIBLE”改为“GONE”

    前:

    private void hideFindPassword() {
        this.findPasswordContainer.setVisibility(View.GONE);
        this.mainViewGroup.requestLayout();
    }
    

    第二

    直接将“INVISIBLE”设置为textview。

    例如:

    private void hideFindPassword() {
        this.findPasswordText.setVisibility(View.VISIBLE);
        this.mainViewGroup.requestLayout();
    }
    

    第三

    为两者设置“INVISIBLE或GONE”。

    private void hideFindPassword() {
        this.findPasswordContainer.setVisibility(View.GONE);
        this.findPasswordText.setVisibility(View.VISIBLE);
        this.mainViewGroup.requestLayout();
    }
    

    没有什么能解决我的问题。

    所以我需要你的帮助。

    我附加从实际显示和xml代码中捕获的图像

    1. 图片:在设置“INVISIBLE”之前
    2. enter image description here

      1. 图片:设置“INVISIBLE”后
      2. enter image description here

        1. Xml文件

          <android.support.constraint.ConstraintLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent">
          <LinearLayout
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:orientation="vertical"
              android:id="@+id/find_password_container">
              <View
                  android:layout_width="0dp"
                  android:layout_height="15dp"/>
              <TextView
                  android:layout_width="match_parent"
                  android:layout_height="wrap_content"
                  android:text="@string/label_find_password"
                  android:textColor="#b6bec1"
                  android:gravity="right"
                  android:textSize="@dimen/base_font_size"
                  android:id="@+id/find_password_button"/>
          </LinearLayout>
          <View
              android:layout_width="0dp"
              android:layout_height="15dp"/>
          <RelativeLayout
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:id="@+id/div_layout_for_third_part">
              <View
                  android:layout_width="match_parent"
                  android:layout_height="1dp"
                  android:layout_centerInParent="true"
                  android:background="@color/colorNormal" />
              <TextView
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:layout_centerInParent="true"
                  android:background="#ffffff"
                  android:paddingLeft="5dp"
                  android:paddingRight="5dp"
                  android:text="@string/label_or" />
          </RelativeLayout>
          

2 个答案:

答案 0 :(得分:0)

您是否曾尝试将TextView的可见性设置为在XML中不可见?

答案 1 :(得分:0)

你可以直接通过xml ..

设置它
android:visibility="gone"

将此属性添加到textview或linearlayout&amp;根据您的需要以编程方式在运行时进行更改

this.findPasswordContainer.setVisibility(View.GONE);

this.findPasswordText.setVisibility(View.VISIBLE);

使用上面的行。

  <android.support.constraint.ConstraintLayout
  android:layout_width="match_parent"
  android:layout_height="match_parent">
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:visibility="gone"
    android:id="@+id/find_password_container">
    <View
        android:layout_width="0dp"
        android:layout_height="15dp"/>
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/label_find_password"
        android:textColor="#b6bec1"
        android:gravity="right"
        android:textSize="@dimen/base_font_size"
        android:id="@+id/find_password_button"/>
</LinearLayout>
<View
    android:layout_width="0dp"
    android:layout_height="15dp"/>
<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/div_layout_for_third_part">
    <View
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:layout_centerInParent="true"
        android:background="@color/colorNormal" />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:background="#ffffff"
        android:paddingLeft="5dp"
        android:paddingRight="5dp"
        android:text="@string/label_or" />
</RelativeLayout>
android android-layout

默认视图将会消失,说你想在某个时候回来调用

this.findPasswordText.setVisibility(View.VISIBLE);

如果有帮助,请不要忘记将其标记为。