How to show / hide grouped views in Android?

I want to create such an action as indicated in the photo ... as soon as I press the maximize button, I want it to become full-screen for activity, and part 1 to become minimal, and again, when I press the restore button, I want it became in the first state: to see part 1 and part 2 ...

I think if we put two layouts, is that possible? Is not it? Please refer to the resource that will help me with this, or show me the code for the solution.

enter image description here

+6
source share
2 answers

Part one and two should be in their own layout. After that, play with the visilibity property of each layout. To hide any view without taking its place, use the value gone for the visibility property.

Ok, here I go. Below is a complete example of how to hide / show grouped views.

main.xml

 <RelativeLayout 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" > <LinearLayout android:id="@+id/viewsContainer" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:padding="5dp" > <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="TextBox One" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="5dp" android:text="TextBox Two" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="5dp" android:text="TextBox Three" /> </LinearLayout> <Button android:id="@+id/button" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:text="Hide" /> </RelativeLayout> 

activity

 public class MyActivity extends Activity implements OnClickListener { private boolean viewGroupIsVisible = true; private View mViewGroup; private Button mButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mViewGroup = findViewById(R.id.viewsContainer); mButton = findViewById(R.id.button); mButton.setOnClickListener(this); } @Override public void onClick(View button) { if (viewGroupIsVisible) { mViewGroup.setVisibility(View.GONE); mButton.setText("Show"); } else { mViewGroup.setVisibility(View.VISIBLE); mButton.setText("Hide"); } viewGroupIsVisible = !viewGroupIsVisible; } 

I hope this helps;)

+10
source

There is a slightly simplified solution than Diego Palomar, without using an additional variable. I will take his code to show:

  public class MyActivity extends Activity implements OnClickListener { private View mViewGroup; private Button mButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mViewGroup = findViewById(R.id.viewsContainer); mButton = findViewById(R.id.button); mButton.setOnClickListener(this); } @Override public void onClick(View button) { if (mViewGroup.getVisibility() == View.VISIBLE) { mViewGroup.setVisibility(View.GONE); mButton.setText("Show"); } else { mViewGroup.setVisibility(View.VISIBLE); mButton.setText("Hide"); } } 
0
source

Source: https://habr.com/ru/post/953989/


All Articles