1

TableLayout 内の Android EditText が実行されないことに注意してください。受け入れられた回答がコメントにあり、LinearLayout への切り替えが含まれていたため、これを投稿しています。回答済みとしてリストされていますが、私は同様の問題を抱えています。TableLayout の幅を fill_parent に設定しても、この問題は解決しません。EditText の右側が table_layout 内で途切れているように見えます。

更新: EditText が端からはみ出していないことに注意してください。10ディップのマージンがありますが、切り落とされます。これは、選択したときに右端にハイライト色がないことを意味します。右角は形がありません。

 <?xml version="1.0" encoding="UTF-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="vertical"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 android:background="@drawable/bluebg"
 android:id="@+id/loading_page_lin_layout"
 >
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/roundtable"
    android:layout_gravity="center"
    android:gravity="center"
    android:layout_margin="10dip"
    android:padding="10dip"
    android:stretchColumns="*">
    <TableRow>
         <TextView
        android:id="@+id/description"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"

        android:paddingRight="15dip"
        android:text="Name:" />
        <EditText  
        android:id="@+id/txtUserName"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:textColor="#85AFBE"                              
        android:hint="Email"
        android:text=""

        android:paddingRight="15dip"
        android:layout_marginRight="10dip"
        android:gravity="left"

        />
     </TableRow>
    <TableRow>
        <EditText  
            android:id="@+id/txtPassword"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:textColor="#85AFBE"                              
            android:text=""
            android:hint="Password"
            android:password="true"
            android:gravity="left"  
            android:layout_gravity="center"                     
            />
    </TableRow>
    <TableRow>
        <!--  <Button
        android:id="@+id/btnSignIn"
        android:text="Sign In" 
        android:layout_width="fill_parent"
        android:paddingTop="10dip"
        android:gravity="center"
        />-->
        <ImageButton 
         android:id="@+id/btnSignIn"
         android:src="@drawable/signbig"    
         android:scaleType="fitCenter"   
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"                
         android:adjustViewBounds="true"
         android:layout_marginLeft="3dip"
         android:background="@null"
         android:layout_marginRight="3dip"
         android:layout_gravity="center"
         />
    </TableRow>
    <TableRow>
        <Button
        android:id="@+id/btnSignUp"
        android:background="@null"
        android:text="Sign Up" 
        android:textStyle=""
        android:layout_width="wrap_content"
        android:paddingTop="10dip"
        android:textSize="20dip"
        android:gravity="center"
        android:onClick="SendToSignUp"
        />                          
    </TableRow> 
    <TableRow>
        <Button
           android:id="@+id/btnFillData"
           android:text="Fill Fake Data" 
           android:background="@null"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:paddingTop="10dip"
           android:gravity="center"
           android:onClick="FillFakeData"
           />
       </TableRow>

4

3 に答える 3

1

同様の問題があり、解決策は EditText フィールドから android:layout_width 属性を削除するだけであることがわかりました。次の要約されたレイアウトを参照してください。

<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:stretchColumns="1">
<TableRow>
    <TextView android:text="Username"
        style="@style/DkTextStyle" />
    <EditText android:id="@+id/userText"
        android:layout_width="wrap_content"
        android:inputType="text" />
</TableRow>
</TableLayout>

上記のレイアウトを使用して、EditText フィールドに大量のテキストを入力すると、ボックスが画面の右側に表示されるカットオフを超えて拡張されます。EditText から android:layout_width 属性を完全に削除すると、適切に動作します。つまり、ボックスがテキストをスクロールし、右端が表示されたままになります。

于 2012-12-01T13:41:12.843 に答える
0

TableLayout は TableRow で構成されますが、tablerow の列は tableLayout の他のすべての tablerow と同じ幅です。列は順番に入力されるため、テーブル行に最初に入力するものは最初の列になります。テーブルレイアウトのビューの幅に問題がある場合は、その列の他の行の他のビューの幅を確認してください。

于 2013-04-14T19:47:09.193 に答える
0

の最後の 3 つのパラメーターで遊んでみますTableLayout

android:layout_margin="10dip"
android:padding="10dip"
android:stretchColumns="*"

HTML テーブルとは異なり、TableLayout は少し扱いに​​くいです。パディングとマージンを適用する前に、子供を測定していると思われます。それらをゼロまたは 100 に設定してみて、何が起こるかを確認してください。

また、 に設定match_parentしたTableLayout width場合は、単一の列を使用しているため、列を引き伸ばす必要はありません。どちらかを設定します。

それが役立つことを願っています

于 2012-09-11T00:04:38.437 に答える