Reputation: 2534
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:
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?
Upvotes: 1
Views: 2488
Reputation: 795
<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>
Upvotes: 0
Reputation:
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>
Upvotes: 2
Reputation: 258
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>
Upvotes: 1
Reputation: 2535
<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>
Upvotes: 1
Reputation: 1066
<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.
Upvotes: 1
Reputation: 4702
For every TextView and EditText, change the android:layout_width="match_parent"
to android:layout_width="0dp"
This will fix it.
Upvotes: 5