1

TableLayout 中的Android EditText 运行了注意我发布这个是因为接受的答案在评论中并且涉及切换到LinearLayout。被列为已回答,但我遇到了类似的问题,切断了右边,但没有跑掉。将 TableLayout 宽度设置为 fill_parent 并不能解决此问题。EditText 的右侧在 table_layout 内看起来是截断的。

更新:请注意 EditText 不会跑出边缘。它有 10dip 的保证金,但被砍掉了。我的意思是右边缘在选择时没有突出显示颜色。右上角没有形状。

 <?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

TableLayouts consist of TableRows, but the columns in a tablerow have the same width of every other tablerow in in the tableLayout. Columns are populated in order, so the first thing you put in a tablerow is in the first column. If you are having trouble with the width of a view in a tablelayout, check the width of other views in other rows in that column.

于 2013-04-14T19:47:09.193 回答
0

我会尝试使用TableLayout.

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

与 HTML 表格不同,TableLayouts 有点挑剔。我怀疑它是在应用填充和边距之前测量孩子。尝试将它们设置为零或 100,看看会发生什么。

此外,如果您设置match_parentTableLayout width,那么您不需要拉伸列,因为您使用的是单列。我会设置一个或另一个。

希望有帮助

于 2012-09-11T00:04:38.437 回答