簡體   English   中英

Android布局問題

[英]Android layouts question

我在下面做錯了什么。 以下是我的問題

1.在一個main.xml文件中,可以有兩個線性布局或故事布局

2.單擊button1,我將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>

有效的XML文件只能有一個根,因此您不能將兩個線性布局作為根元素。 創建另一個包含這兩個布局作為子項的布局。

對於問題2.不要將View設置為不可見,而是將可見性設置為View.Gone

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

這對布局來說更好。 有關詳細信息,請參閱Android View文檔。

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> 

1.添加第一個LinearLayout下的所有其他布局。現在只需在添加LinearLayout和Button后完成LinearLayout

2.隱藏布局tr1嘗試隱藏孩子

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM