Have a relative layout with some views (textviews, edittext and button). When viewing and hiding the textview, the layout not moving up. While hiding the view (textview.setVisibility(View.INVISIBLE)) it create blank space instead of pushing the view up.
Layout file
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<RelativeLayout
android:id="@+id/layout1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<TextView
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="text1"
android:padding="20dp"/>
<TextView
android:id="@+id/text2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="text2"
android:layout_below="@id/text1"
android:padding="20dp"/>
<TextView
android:id="@+id/text3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="text3"
android:layout_below="@id/text2"
android:padding="20dp"/>
<TextView
android:id="@+id/text4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="text4"
android:layout_below="@id/text3"
android:padding="20dp"/>
<TextView
android:id="@+id/text5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="text5"
android:layout_below="@id/text4"
android:visibility="gone"
android:padding="20dp"/>
</RelativeLayout>
<RelativeLayout
android:id="@+id/layout2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/layout1">
<EditText
android:id="@+id/edittext1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="20dp"/>
<EditText
android:id="@+id/edittext2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/edittext1"
android:padding="20dp"/>
<EditText
android:id="@+id/edittext3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/edittext2"
android:padding="20dp"/>
<EditText
android:id="@+id/edittext4"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/edittext3"
android:padding="20dp"/>
</RelativeLayout>
<RelativeLayout
android:id="@+id/layout3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/layout2">
<Button
android:id="@+id/enable"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="20dp"
android:layout_margin="10dp"
android:text="Enable"/>
<Button
android:id="@+id/disable"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="20dp"
android:layout_below="@id/enable"
android:layout_margin="10dp"
android:text="disable"/>
</RelativeLayout>
</RelativeLayout>
</ScrollView>
Activity file
public class SampleTransparent extends AppCompatActivity {
Button btn_enable, btn_disable;
TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout3);
btn_enable = findViewById(R.id.enable);
btn_disable = findViewById(R.id.disable);
textView = findViewById(R.id.text5);
btn_enable.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
textView.setVisibility(View.VISIBLE);
}
});
btn_disable.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
textView.setVisibility(View.INVISIBLE);
}
});
}
Before Enabling view
After enabling and disabling the view
View.GONE
This view is invisible, and it doesn't take any space for layout purposes.
View.INVISIBLE
This view is invisible, but it still takes up space for layout purposes.
btn_disable.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
textView.setVisibility(View.GONE);
}
});