2016-08-25 147 views
0

我想知道爲什麼我製作的用於顯示/隱藏我的佈局的按鈕只能工作一次,即最初我的佈局已經完成,然後當我單擊一個按鈕時它們是可見的,但稍後當我點擊相同的按鈕時,他們的視圖不會被設置回GONE。在Android中顯示隱藏佈局切換按鈕

/** 
* Method to show/hide buttons, on button click. 
* @param v 
*/ 
public void hideOrDisplayOptionIconsButton(View v) 
{ 
    // Hide layouts if VISIBLE 
    if(mMapViewsButtonsLinearLayout.getVisibility() == View.VISIBLE 
     && mLocationButtonsLinearLayout.getVisibility() == View.VISIBLE) 
    { 
     mMapViewsButtonsLinearLayout.setVisibility(View.GONE); 
     mLocationButtonsLinearLayout.setVisibility(View.GONE); 
    } 
    // Show layouts if they're not VISIBLE 
    else 
    { 
     mMapViewsButtonsLinearLayout.setVisibility(View.VISIBLE); 
     mLocationButtonsLinearLayout.setVisibility(View.VISIBLE); 
    } 
} 
+0

是什麼方法「V」參數?一個樣品,我沒有看到你在代碼中使用它。 – rahul

+1

當你展示他們時,你確定你的開關'Button'沒有被佈局覆蓋嗎?也就是說,你確定你的點擊沒有被阻止? –

+1

添加到Mike的評論中,您可以記錄按鈕按下以檢查按鈕按下是否正在觸發。 – RamithDR

回答

0

這裏是一個應該爲你工作

import android.app.Activity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.LinearLayout; 

public class MainActivity extends Activity { 

    private LinearLayout mMapViewsButtonsLinearLayout=null; 
    private LinearLayout mLocationButtonsLinearLayout=null; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     mMapViewsButtonsLinearLayout= (LinearLayout) findViewById(R.id.mMapViewsButtonsLinearLayout); 
     mLocationButtonsLinearLayout= (LinearLayout) findViewById(R.id.mLocationButtonsLinearLayout); 

    } 

    public void hideOrDisplayOptionIconsButton(View v) 
    { 
     // Hide layouts if VISIBLE 
     if(mMapViewsButtonsLinearLayout.getVisibility() == View.VISIBLE 
       && mLocationButtonsLinearLayout.getVisibility() == View.VISIBLE) 
     { 
      mMapViewsButtonsLinearLayout.setVisibility(View.GONE); 
      mLocationButtonsLinearLayout.setVisibility(View.GONE); 
     } 
     // Show layouts if they're not VISIBLE 
     else 
     { 
      mMapViewsButtonsLinearLayout.setVisibility(View.VISIBLE); 
      mLocationButtonsLinearLayout.setVisibility(View.VISIBLE); 
     } 
    } 
} 

這裏是佈局

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    tools:context="com.hideshow.MainActivity"> 


    <LinearLayout 
     android:id="@+id/mMapViewsButtonsLinearLayout" 
     android:orientation="horizontal" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 

     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="New Button" 
      android:id="@+id/button" /> 

     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="New Button" 
      android:id="@+id/button2" /> 
    </LinearLayout> 

    <LinearLayout 
     android:id="@+id/mLocationButtonsLinearLayout" 
     android:orientation="horizontal" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 

     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="New Button" 
      android:id="@+id/button3" /> 

     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="New Button" 
      android:id="@+id/button4" /> 
    </LinearLayout> 

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

     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Hide or Show" 
      android:id="@+id/hideorshow" 
      android:onClick="hideOrDisplayOptionIconsButton" /> 
    </LinearLayout> 
</LinearLayout> 
+1

謝謝你的回答。 :)在發佈問題之前,我實際上在我的項目中做了同樣的事情。不知怎的,它在我清理了我的項目並重新構建之後起作用。 –