Android: TableLayout изменяется, когда set ViewVisibility (видимый) - PullRequest
1 голос
/ 23 мая 2011

Эй, ребята, у меня возникли проблемы с экраном из приложения, которое я разрабатываю.Когда я нажимаю кнопку ОК, ImageButton (btnSelect) должен установить setVisibility (GONE), и должен появиться ImageView (OkIcon), но это уменьшает пространство для EditText, как вы можете видеть на этих снимках экрана.

http://imageshack.us/photo/my-images/17/problem1ei.png/

http://imageshack.us/photo/my-images/852/problem2m.png/

Почему это происходит?

КОД:

@Override
public void onClick(View v) {
    InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
        if (v.getId() == R.id.init_select1) {
            if (validateSal(this.edtTextInit1.getText().toString())) {
                saveSal(this.edtTextInit1.getText().toString());
                imm.hideSoftInputFromWindow(edtTextInit1.getWindowToken(),0);
                edtTextInit1.setEnabled(false);
                btnSelect1.setVisibility(View.GONE);
                okIcon1.setVisibility(View.VISIBLE);
                btnSelect2.setVisibility(View.VISIBLE);
            }

LAYOUT'S XML:

<ScrollView
    android:layout_height="fill_parent"
    android:layout_width="fill_parent">
    <TableLayout
        android:gravity="center"
        android:layout_height="fill_parent"
        android:layout_width="fill_parent"
        android:layout_weight="1"
        android:shrinkColumns="0">
        <TableRow>
            <TextView
                style="@style/styleTextLabel"
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"
                android:text="@string/label_init"
                android:id="@+id/label_init"
                android:layout_margin="10dip">
            </TextView>
        </TableRow>

        <TableRow>
            <EditText
                android:layout_column="0"
                android:layout_marginRight="10dip"
                android:layout_marginLeft="10dip"
                android:layout_marginBottom="10dip"
                style="@style/styleInputInit"
                android:id="@+id/input_init1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content">
            </EditText>
            <ImageView
                android:visibility="gone"
                android:layout_marginRight="10dip"
                android:layout_marginLeft="10dip"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="@drawable/okicon"
                android:id="@+id/init_ok1">
            </ImageView>
            <ImageButton
                android:layout_column="1"
                android:layout_marginRight="10dip"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/init_select1"
                android:background="@drawable/btn_ok_">
            </ImageButton>
        </TableRow>

        <TableRow>
            <EditText
                android:layout_column="0"
                android:layout_marginRight="10dip"
                android:layout_marginLeft="10dip"
                android:layout_marginBottom="10dip"
                android:id="@+id/input_init2"
                style="@style/styleInputInit"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content">
            </EditText>
            <ImageView
                android:layout_column="1"
                android:visibility="gone"
                android:layout_marginRight="10dip"
                android:layout_marginLeft="10dip"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="@drawable/okicon"
                android:id="@+id/init_ok2">>
            </ImageView>
            <ImageButton
                android:layout_column="1"
                android:layout_marginRight="10dip"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/init_select2"
                android:background="@drawable/btn_ok_"
                android:visibility="gone">
            </ImageButton>
        </TableRow> (...)

Ответы [ 2 ]

2 голосов
/ 23 мая 2011

Попробуйте добавить вес в EditText, как:

    <TableRow>
        <EditText
            android:layout_column="0"
            android:layout_marginRight="10dip"
            android:layout_marginLeft="10dip"
            android:layout_marginBottom="10dip"
            style="@style/styleInputInit"
            android:id="@+id/input_init1"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="wrap_content">
        </EditText>
        <ImageView
            android:visibility="gone"
            android:layout_marginRight="10dip"
            android:layout_marginLeft="10dip"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/okicon"
            android:id="@+id/init_ok1">
        </ImageView>
        <ImageButton
            android:layout_column="1"
            android:layout_marginRight="10dip"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/init_select1"
            android:background="@drawable/btn_ok_">
        </ImageButton>
    </TableRow>

    <TableRow>
        <EditText
            android:layout_column="0"
            android:layout_marginRight="10dip"
            android:layout_marginLeft="10dip"
            android:layout_marginBottom="10dip"
            android:id="@+id/input_init2"
            style="@style/styleInputInit"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="wrap_content">
        </EditText>
        <ImageView
            android:layout_column="1"
            android:visibility="gone"
            android:layout_marginRight="10dip"
            android:layout_marginLeft="10dip"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/okicon"
            android:id="@+id/init_ok2">>
        </ImageView>
        <ImageButton
            android:layout_column="1"
            android:layout_marginRight="10dip"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/init_select2"
            android:background="@drawable/btn_ok_"
            android:visibility="gone">
        </ImageButton>
    </TableRow> (...)
0 голосов
/ 16 сентября 2011

Вы должны установить вес макета для этого. так что вы легко можете сделать то же самое хорошим способом.

...