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

谢谢你的回答。 :)在发布问题之前,我实际上在我的项目中做了同样的事情。不知怎的,它在我清理了我的项目并重新构建之后起作用。 –