2011-05-23 59 views
1

嘿,夥計們,我正在開發一個應用程序的屏幕出現問題。當我點擊確定按鈕時,ImageButton(btnSelect)應該設置可見性(GONE)並且應該出現ImageView(OkIcon),但是這會縮小EditText的空間,正如您在這些屏幕截圖中看到的那樣。Android:TableLayout在設置時發生變化View的setVisibility(可見)

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

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

這究竟是爲什麼?

CODE:

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

佈局的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

儘量把重量上的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

沒有實際解決馬上,但使用layout_weight我能夠設置它,我想要的方式...非常感謝你 – 2011-05-23 18:20:00

0

您應該爲此設置佈局權重。所以你可以很容易地做同樣的事情。

相關問題