TableLayout中的Android EditText运行

时间:2012-02-08 17:50:56

标签: android android-edittext tablelayout

我在tablelayout中有一个简单的符号,但里面的内容伸得太远了。在我看来,一切都集中在一起。或者似乎EditText试图将自己置于主要父级内部,而不是IT父级tablelayout。知道为什么吗?

<?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>
            <EditText  
            android:id="@+id/txtUserName"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:textColor="#85AFBE"                              
            android:hint="Email"
            android:text=""
            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>
</TableLayout>
</LinearLayout>

signin screen shot

5 个答案:

答案 0 :(得分:14)

我在两列表上遇到了同样的问题。 第二栏中的文字被切断了。 使用android:shrinkColumns="1"中的TableLayout修复了此问题。

这是我的代码,text3太大了,直到我在shrinkColumns添加了TableLayout属性后才被屏幕切断。

<TableLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:shrinkColumns="1" >

        <TableRow
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" 
            >

            <TextView
                android:id="@+id/text1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginRight="10dp" />

            <TextView
                android:id="@+id/text2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />
        </TableRow>

        <TableRow
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >

            <TextView
                android:id="@+id/text3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_column="1" />
        </TableRow>
    </TableLayout>

答案 1 :(得分:10)

您的表格布局将其宽度设置为&#34; wrap_content&#34;并且它的孩子在&#34; fill_parent&#34;,并没有一个人知道任何事情:)将你的桌子布局的宽度设置为&#34; fill_parent&#34;一切都应该按照你的意思进行布局。

<强> UPD 我只在你的表中看到一列。这意味着您可以安全地用垂直LinearLayout替换它。

答案 2 :(得分:2)

我遇到了同样的问题,网上的教程都没有用。最后,我发现设置表视图的'Shrink Columns'属性可以解决问题。

答案 3 :(得分:0)

为运行EditText的列设置shrinkColumn和stretchColumn。这为您提供了父匹配宽度,并且不会运行。

答案 4 :(得分:0)

设置EditTextView&#39; layout_width =&#34; 0dp&#34;和layout_weight =&#34; 1&#34;解决了我的问题。