我正在开发一款Android应用,但我还是很新的。我想要一个按钮,当你按下该按钮时,会出现一些TextViews和Buttons。所以我有一个主线性布局,然后嵌套在里面的另一个线性布局包含我想隐藏的东西。我将嵌套的线性布局设置为android:visibility =“gone”。
我遇到的问题是它只显示隐藏线性布局中的第一个项目而不是所有这些项目。我试图让它出现的方式是
vgAddView = (ViewGroup)findViewById(R.id.add_details);
btnAche.setOnClickListener(new OnClickListener(){
public void onClick(View v){
vgAddView.setVisibility(0);
}
});
我的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"
>
<Button
android:text="@string/but_stomach_ache"
android:id="@+id/but_stomach_ache"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
</Button>
<Button
android:text="@string/but_food"
android:id="@+id/but_food"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
</Button>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/add_details"
android:visibility="gone">
<TextView
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="@string/when_happen">
</TextView>
<Button
android:text="@string/happen_now"
android:id="@+id/happen_now"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
</Button>
</LinearLayout>
</LinearLayout>
答案 0 :(得分:4)
TextView
中的LinearLayout
设置为android:layout_width="fill_parent"
和android:layout_height="fill_parent"
,这意味着它将占用LinearLayout
的整个空间,不会Button
的空间。如果您使用SDK附带的hierarchyviewer
工具,则可以在查看活动时看到。
您需要将TextView
的高度设置为wrap_content
,否则会为Button
留出空间。
答案 1 :(得分:1)
将其可见性设置为如下所示的真实设置后:
vgAddView.setVisibility(View.VISIBLE);
- 显示vgAddView.setVisibility(View.GONE);
- 隐藏它答案 2 :(得分:0)
首先,TextView有一个layout_width =“fill_parent”。 这意味着,TextView不会为Button留出空间。 您可以尝试设置layout_weight属性或将layout_width设置为wrap_content