1

I want a TextView and EditText in one TableRow and I want EditText to have twice larger width than TextView, so I put this in TextView area:

android:layout_weight="1"

and in EditText area:

android:layout_weight="2"

but it doesn't look right:

enter image description here

My whole .xml file:

<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <TableRow
        android:id="@+id/imageButton"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:padding="8dp" >

        <ImageView
            android:id="@+id/imageView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:adjustViewBounds="true"
            android:maxHeight="150dp"
            android:maxWidth="150dp"
            android:scaleType="centerInside"
            android:src="@drawable/add_user" />
    </TableRow>

    <TableRow
        android:id="@+id/loginRow"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="8dp" >

        <TextView
            android:id="@+id/loginTextView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="@string/login_text_view" />

        <EditText
            android:id="@+id/loginEditText"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="2"
            android:inputType="text" >

            <requestFocus />
        </EditText>
    </TableRow>

    <TableRow
        android:id="@+id/passwordRow"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="8dp" >

        <TextView
            android:id="@+id/passwordTextView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="@string/password_text_view" />

        <EditText
            android:id="@+id/passwordEditText"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="2"
            android:inputType="textPassword" />
    </TableRow>

    <TableRow
        android:id="@+id/nameRow"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="8dp" >

        <TextView
            android:id="@+id/nameTextView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="@string/name_text_view" />

        <EditText
            android:id="@+id/nameEditText"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="2"
            android:inputType="text" />
    </TableRow>

    <TableRow
        android:id="@+id/countryRow"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="8dp" >

        <TextView
            android:id="@+id/countryTextView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="@string/country_text_view" />

        <EditText
            android:id="@+id/countryEditText"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="2"
            android:inputType="text" />
    </TableRow>

    <TableRow
        android:id="@+id/phoneRow"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="8dp" >

        <TextView
            android:id="@+id/phoneTextView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="@string/phone_text_view" />

        <EditText
            android:id="@+id/phoneEditText"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="2"
            android:inputType="text|phone" />
    </TableRow>

    <TableRow
        android:id="@+id/buttonRow"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="20dp" >

        <Button
            android:id="@+id/addUserButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="@string/add_user_button" />
    </TableRow>

</TableLayout>

What am I doing wrong?

Krzysztof Majewski
  • 2,494
  • 4
  • 27
  • 51

6 Answers6

5

For every TextView and EditText, change the android:layout_width="match_parent" to android:layout_width="0dp"

This will fix it.

Eric B.
  • 4,622
  • 2
  • 18
  • 33
2

Do as following

<TableRow
    android:id="@+id/loginRow"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:padding="8dp"
    android:weightSum="3"
    android:orientation="horizontal">

    <TextView
        android:id="@+id/loginTextView"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="login_text_view" />

    <EditText
        android:id="@+id/loginEditText"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="2"
        android:inputType="text" >
        <requestFocus />
    </EditText>

</TableRow>
1
<TableRow
        android:id="@+id/loginRow"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="8dp"
        android:weightSum="100" >

        <TextView
            android:id="@+id/loginTextView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="30"
            android:text="@string/login_text_view" />

        <EditText
            android:id="@+id/loginEditText"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="60"
            android:inputType="text" >

            <requestFocus />
        </EditText>
    </TableRow>

Just try it. Hope its work.

akhil batlawala
  • 1,066
  • 1
  • 10
  • 30
1
<TableRow
    android:id="@+id/loginRow"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:padding="8dp"
    android:weightSum="3">

    <TextView
        android:id="@+id/loginTextView"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="abcdef"/>

    <EditText
        android:id="@+id/loginEditText"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="2"
        android:inputType="text">

        <requestFocus/>
    </EditText>
</TableRow>
Anand Savjani
  • 2,484
  • 3
  • 26
  • 39
1

Your layout_width should be 0dip. This is a good example.

<TableRow
    android:id="@+id/loginRow"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:padding="8dp"
    android:orientation="horizontal">

    <TextView
        android:id="@+id/loginTextView"
        android:layout_width="0dip"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="login_text_view" />

    <EditText
        android:id="@+id/loginEditText"
        android:layout_width="0dip"
        android:layout_height="wrap_content"
        android:layout_weight="2"
        android:inputType="text" >
        <requestFocus />
    </EditText>

</TableRow>
Community
  • 1
  • 1
Andy.Zhao
  • 250
  • 3
  • 16
0
 <TableRow
    android:id="@+id/loginRow"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:padding="8dp" >

    <TextView
        android:id="@+id/loginTextView"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight=".33"
        android:text="login_text_view" />

    <EditText
        android:id="@+id/loginEditText"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:inputType="text" >

        <requestFocus />
    </EditText>
</TableRow>
MPG
  • 785
  • 6
  • 20