I have a problem. I have a scroll view that contains text and buttons, the idea is as the buttons are pressed, the texts appear (the texts of the buttons are invisible and when the buttons are pressed they become visible). The problem is that when I start the application I can download and when the texts and buttons are invisible, it remains blank. Is there any way that it does not allow me to download until the text and the buttons appear?
For better understanding I leave the code for you to try. Thank you
This is the xml:
<ScrollView
android:layout_width="match_parent"
android:layout_height="240dp"
android:id="@+id/scrollView2"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true" >
<TableLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="Texto1"
android:id="@+id/tv1" />
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="A"
android:id="@+id/rb1"
android:checked="false"
android:onClick="a" />
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="B"
android:id="@+id/rb2"
android:onClick="b"
android:checked="false" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="Texto2"
android:id="@+id/tv2"
android:visibility="invisible" />
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="C"
android:id="@+id/rb3"
android:checked="false"
android:onClick="c"
android:visibility="invisible" />
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="D"
android:id="@+id/rb4"
android:checked="false"
android:onClick="d"
android:visibility="invisible" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="Texto3"
android:id="@+id/tv3"
android:visibility="invisible" />
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="E"
android:id="@+id/rb5"
android:checked="false"
android:onClick="e"
android:visibility="invisible" />
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="F"
android:id="@+id/rb6"
android:onClick="f"
android:visibility="invisible" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="Texto4"
android:id="@+id/tv4"
android:visibility="invisible" />
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="g"
android:id="@+id/rb7"
android:onClick="g"
android:visibility="invisible" />
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="h"
android:id="@+id/rb8"
android:onClick="h"
android:visibility="invisible" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="Texto5"
android:id="@+id/tv5"
android:visibility="invisible" />
</LinearLayout>
</TableRow>
</TableLayout>
</ScrollView>
And this the code:
public class Main22Activity extends Activity {
TextView tv1, tv2, tv3, tv4, tv5;
RadioButton rb1, rb2, rb3, rb4, rb5, rb6, rb7, rb8;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main22);
tv1=(TextView)findViewById(R.id.tv1);
tv2=(TextView)findViewById(R.id.tv2);
tv3=(TextView)findViewById(R.id.tv3);
tv4=(TextView)findViewById(R.id.tv4);
tv5=(TextView)findViewById(R.id.tv5);
rb1=(RadioButton)findViewById(R.id.rb1);
rb2=(RadioButton)findViewById(R.id.rb2);
rb3=(RadioButton)findViewById(R.id.rb3);
rb4=(RadioButton)findViewById(R.id.rb4);
rb5=(RadioButton)findViewById(R.id.rb5);
rb6=(RadioButton)findViewById(R.id.rb6);
rb7=(RadioButton)findViewById(R.id.rb7);
rb8=(RadioButton)findViewById(R.id.rb8);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main22, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
public void a(View view){
rb2.setEnabled(false);
tv2.setVisibility(View.VISIBLE);
rb3.setVisibility(View.VISIBLE);
rb4.setVisibility(View.VISIBLE);
}
public void b(View view){
rb1.setEnabled(false);
tv2.setVisibility(View.VISIBLE);
rb3.setVisibility(View.VISIBLE);
rb4.setVisibility(View.VISIBLE);
}
public void c(View view){
tv3.setVisibility(View.VISIBLE);
rb4.setEnabled(false);
rb5.setVisibility(View.VISIBLE);
rb6.setVisibility(View.VISIBLE);
}
public void d(View view){
tv3.setVisibility(View.VISIBLE);
rb3.setEnabled(false);
rb5.setVisibility(View.VISIBLE);
rb6.setVisibility(View.VISIBLE);
}
public void e(View view){
tv4.setVisibility(View.VISIBLE);
rb6.setEnabled(false);
rb7.setVisibility(View.VISIBLE);
rb8.setVisibility(View.VISIBLE);
}
public void f(View view){
tv4.setVisibility(View.VISIBLE);
rb5.setEnabled(false);
rb7.setVisibility(View.VISIBLE);
rb8.setVisibility(View.VISIBLE);
}
public void g(View view){
tv5.setVisibility(View.VISIBLE);
rb8.setEnabled(false);
}
public void h(View view){
tv5.setVisibility(View.VISIBLE);
rb7.setEnabled(false);
}
}
What happens is that you are using the invisible mode, which makes the View "transparent" even though it still takes up space. To make it disappear completely you must use the "gone" mode. In your XML, replace all lines
by
As the official documentation says: INVISIBLE: this view is invisible, but it still takes up space for layout purposes.
GONE: this view is invisible, and it doesn't take any space for layout purposes.