2013-04-08 85 views
1

我是新來的android和我無法解決我的簡單問題。我有一個父級Tablelayout和裏面它我有兩個tablelayouts分別在我的xml文件ids tbl1和tbl2。在tbl1佈局我有三個textviews和三個edittext控件同樣我有一些意見在tbl2 layout.Now我希望我的tbl1佈局是可見的,當我的活動開始,但點擊我的button2這是在tbl1佈局我的tablelayout tbl1不可見和我的tablelayout tbl2變得可見。事實上,我知道我可以在面板的幫助下在asp.net中實現這一點,但在Android中,我無法實現同樣的功能。請幫助按鈕點擊事件設置佈局visiblity

回答

0

您將要查看setVisibility()方法。在按鈕2的點擊監聽器中,放置以下內容;

Button.setVisibility(View.INVISIBLE) 
TextView.setVisibility(View.INVISIBLE) 
etc... 

這會使視圖看不見,但它們仍佔用空間。如果你不希望他們佔用的空間,您應該使用

setVisibility(Veiw.GONE); 

最後,讓你的按鈕和TextView的和edittexts在第二個表,看起來,你需要做以下;

setVisibility(View.VISIBLE); 
+0

你想說的是,首先,我需要在佈局1無形的所有控件,然後讓他們在點擊按鈕可見 – rupinder18 2013-04-08 07:01:17

+0

@ rupinder18是的,你能做到這一點的XML太多,如果你想用'android:visibility ='gone'' – jcw 2013-04-08 07:09:47

+0

'但是最後在不同的佈局中放置不同的控件有什麼用處......基本上我想要的是點擊一個按鈕特定的一組控件變得可見並且點擊另一個按鈕該特定的控件組變得不可見,而其他控件組變得可見......就像在asp.net中,我們通過面板的幫助實現了這一點,例如我有panel1,並在裏面有一些控件,然後我設置panel1的可見性爲true ñ點擊一個按鈕,這樣做的好處不是設置每個控件的可見性,我們只設置面板的可視性 – rupinder18 2013-04-08 07:24:53

0
Java Code: 
@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.visibility_1); 

     // Find the view whose visibility will change 
     mVictim = findViewById(R.id.victim); 

     // Find our buttons 
     Button visibleButton = (Button) findViewById(R.id.vis); 
     Button invisibleButton = (Button) findViewById(R.id.invis); 
     Button goneButton = (Button) findViewById(R.id.gone); 

     // Wire each button to a click listener 
     visibleButton.setOnClickListener(mVisibleListener); 
     invisibleButton.setOnClickListener(mInvisibleListener); 
     goneButton.setOnClickListener(mGoneListener); 
    } 

    OnClickListener mVisibleListener = new OnClickListener() { 
     public void onClick(View v) { 
      mVictim.setVisibility(View.VISIBLE); 
     } 
    }; 

    OnClickListener mInvisibleListener = new OnClickListener() { 
     public void onClick(View v) { 
      mVictim.setVisibility(View.INVISIBLE); 
     } 
    }; 

    OnClickListener mGoneListener = new OnClickListener() { 
     public void onClick(View v) { 
      mVictim.setVisibility(View.GONE); 
     } 
    }; 
} 

XML Code: 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <LinearLayout 
     android:orientation="vertical" 
     android:background="@drawable/box" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 

     <TextView 
      android:background="@drawable/red" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="@string/visibility_1_view_1"/> 

     <TextView android:id="@+id/victim" 
      android:background="@drawable/green" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="@string/visibility_1_view_2"/> 

     <TextView 
      android:background="@drawable/blue" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="@string/visibility_1_view_3"/> 

    </LinearLayout> 

    <LinearLayout 
     android:orientation="horizontal" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"> 

     <Button android:id="@+id/vis" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="@string/visibility_1_vis"/> 

     <Button android:id="@+id/invis" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="@string/visibility_1_invis"/> 

     <Button android:id="@+id/gone" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="@string/visibility_1_gone"/> 

    </LinearLayout> 
</LinearLayout> 
+0

添加解釋給你的答案 – HaveNoDisplayName 2015-09-30 03:30:06