Android Studio problems with ScrollView

0

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 the buttons are invisible and when they are pressed the buttons change to visible). The problem is that when I start the application I can download it and the texts and the invisible buttons remain blank. Is there any way I can not get down until the text and buttons appear?

To make it easier to understand, I leave the code for you to try it. Thanks

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);
}

}

    
asked by Agustin Val 21.09.2016 в 17:57
source

1 answer

2

What happens is that you are using the invisible mode, which makes the View "transparent" but still occupies space. To make it disappear completely you must use the "gone" mode. In your XML, replace all the lines

android:visibility="invisible"

for

android:visibility="gone"

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 does not take any space for layout purposes.

    
answered by 21.09.2016 / 18:19
source