0

レイアウトを表示/非表示にしたボタンが1回しか動作しないのはなぜかと思いました。後で同じボタンをクリックすると、そのビューは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

ですそれをコードで使用します。 – rahul

+1

あなたのトグル「ボタン」はあなたがそれらを表示するときにレイアウトによって覆われていませんか?つまり、あなたのクリックはブロックされていないと確信していますか? –

+1

マイクのコメントに加えて、ボタンプレスを記録して、ボタンプレスが発砲しているかどうかを確認することができます。 – 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); 
     } 
    } 
} 

のために働く必要がありますサンプルは、メソッドに「V」のパラメータである?、私はあなたを見ていないものをレイアウト

<?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

ありがとうございました。 :)私は質問を投稿する前に実際に私のプロジェクトで同じことをしました。何とか私は私のプロジェクトをきれいにして再構築した後に働いた。 –

関連する問題