想在android应用程序的运行时期间使一些视图不可见

Rit*_*itu 7 android android-layout

这是我的主要.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:padding="5dip"
    >

<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"

android:textColor="@color/mbackground1"
android:gravity="center_horizontal"
android:text="@string/decode_label"
android:padding="5dip" 
/>

<TextView
android:id="@+id/mytext"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:background="@color/mbackground2" 
android:textColor="@color/mytextcolor" 
android:padding="5dip"
/>


 <TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/continue_label"
android:gravity="center_horizontal"
android:textColor="@color/mytextcolor"
android:padding="5dip"
/>

<Button 
android:id="@+id/webbutton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/web_button"
android:textColor="@color/mytextcolor"
/>

<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/continue_label1"
android:gravity="center_horizontal"
android:textColor="@color/mytextcolor"
android:padding="5dip"
/>

<Button 
android:id="@+id/callbutton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/call_button"
android:textColor="@color/mytextcolor"
/>
<TextView

android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/continue_label2"
android:gravity="center_horizontal"
android:textColor="@color/mytextcolor"
android:padding="5dip"
/>

<Button 
android:id="@+id/emailbutton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/sendemail_button"
android:textColor="@color/mytextcolor"
/>

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

我希望基于运行时的输出,它应该只显示一个文本视图和对应于该输出的按钮.我在main.xml文件中定义布局,我也在这个领域.

有谁有想法吗.提前致谢

Inc*_*App 13

我假设你知道如何获得你定义的视图的引用,例如:

Button button = (Button)findViewById(R.id.emailbutton)
Run Code Online (Sandbox Code Playgroud)

您需要为代码中要使用的每个视图定义一个id,就像您对email按钮所做的那样:

android:id="@+id/emailbutton"
Run Code Online (Sandbox Code Playgroud)

要设置您调用的视图的可见性,请执行以下操作:

button.setVisibility(View.GONE);
Run Code Online (Sandbox Code Playgroud)

您可以选择将可见性设置为INVISIBLEVISIBLE.然后,您可以随意使用可见性.INVISIBLE和之间的区别在于,在"保存"此视图所占用的空间时GONE,GONE将视图从布局中完全删除INVISIBLE.

您可以在API示例中看到.


小智 6

要在java代码中删除您的视图:

Button btn=(Button)findViewById(R.id.btn);
btn.setVisibility(View.GONE);
Run Code Online (Sandbox Code Playgroud)

要在java代码中透明您的视图:

Button btn=(Button)findViewById(R.id.btn);
btn.setVisibility(View.INVISIBLE);
Run Code Online (Sandbox Code Playgroud)

要在Xml文件中删除您的视图:

<yourView
android:id="@+id/btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone"/>
Run Code Online (Sandbox Code Playgroud)

到Xml文件中的透明按钮:

<yourView
android:id="@+id/btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="invisible"/>
Run Code Online (Sandbox Code Playgroud)