2011-07-29 213 views
0

我在做什么错在下面。也是继是我的问题Android布局问题

1.In一个main.xml中的文件才能有两个线性布局或故事布局

2.Below上的Button1点击我设置linearlayout1的知名度,“隐身”,但它不发生。

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> 

回答

2

有效的XML文件只能有一个根,所以你不能有两个线性布局的根元素。创建另一个包含这两个布局的布局作为子项。

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> 

0

1.增加您添加的LinearLayout和一个Button

2.To后刚刚完成的LinearLayout第一LinearLayout.Now下的所有其他布局隐藏布局tr1试图隐藏孩子

int count=tr1.getChildCount(); 
     for(int i=0;i<count;i++) 
      tr1.getChildAt(i).setVisible(false); 
0

对于问题2取而代之的视图设置为不可见,可见性设置为View.Gone

final LinearLayout tr1 =(LinearLayout)findViewById(R.id.linearLayout1); 
tr1.setVisibility(View.Gone) 

这是布局的目的更好。有关更多详细信息,请参阅Android View文档。