以下我做错了什么。以下是我的问题
1.在一个main.xml文件中可以有两个线性布局或故事布局
2.Beow on click1我将linearlayout1的可见性设置为'Invisible',但它不会发生。
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button g_gal =(Button)findViewById(R.id.button1);
final LinearLayout tr1 =(LinearLayout)findViewById(R.id.linearLayout1);
final LinearLayout tr2 =(LinearLayout)findViewById(R.id.linearLayout2);
tr2.setVisibility(View.INVISIBLE);
final Button g_gal =(Button)findViewById(R.id.button1);
g_gal.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
try {
tr2.setVisibility(View.VISIBLE);
tr1.setVisibility(View.INVISIBLE);
}
catch (Exception e)
{
Toast.makeText(getApplicationContext(),"Exception while displaying gallery: "+ e, Toast.LENGTH_SHORT).show();
}
}
});
main.xml中
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:orientation="vertical" android:id="@+id/linearLayout1" android:layout_width="wrap_content" android:layout_height="wrap_content">
<Button android:text="Browse Gallery" android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
</LinearLayout>
<LinearLayout android:id="@+id/linearLayout2" android:layout_width="wrap_content" android:layout_height="wrap_content">
<EditText android:id="@+id/editText1" android:layout_width="wrap_content" android:layout_height="wrap_content">
<requestFocus></requestFocus>
</EditText>
<Button android:text="Send SMS to Nav" android:id="@+id/sms" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
<Button android:text="Back" android:id="@+id/back1" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
</LinearLayout>
答案 0 :(得分:2)
有效的XML文件只能有一个根,因此您不能将两个线性布局作为根元素。创建另一个包含这两个布局作为子项的布局。
答案 1 :(得分:0)
main.xml中
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:id="@+id/linearLayout0" android:layout_width="wrap_content" android:layout_height="wrap_content">
<LinearLayout android:orientation="vertical" android:id="@+id/linearLayout1" android:layout_width="wrap_content" android:layout_height="wrap_content">
<Button android:text="Browse Gallery" android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
</LinearLayout>
<LinearLayout android:id="@+id/linearLayout2" android:layout_width="wrap_content" android:layout_height="wrap_content">
<EditText android:id="@+id/editText1" android:layout_width="wrap_content" android:layout_height="wrap_content">
<requestFocus></requestFocus>
</EditText>
<Button android:text="Send SMS to Nav" android:id="@+id/sms" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
<Button android:text="Back" android:id="@+id/back1" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
</LinearLayout>
答案 2 :(得分:0)
1.在第一个LinearLayout下添加所有其他布局。现在你在添加一个LinearLayout和一个Button后完成LinearLayout
2.要隐藏布局tr1尝试隐藏孩子
int count=tr1.getChildCount();
for(int i=0;i<count;i++)
tr1.getChildAt(i).setVisible(false);
答案 3 :(得分:0)
问题2。不是将视图设置为不可见,而是将可见性设置为View.Gone
final LinearLayout tr1 =(LinearLayout)findViewById(R.id.linearLayout1);
tr1.setVisibility(View.Gone)
这对于布局目的更好。有关详细信息,请参阅Android View文档。