Reputation: 339
I have 3 elements in a LinearLayout
that need to fit on the screen, currently they do not.
Here is how I want it to look
TextView
-- TextView
-- EditText
However the 2nd TextView
is rather long and it pushes the EditText
off the screen
So it ends up looking like this
TextView
--- (end of screen)| TextView
--------|(end of screen) EditText
I've looked around for a while and I can't seem to find a solution to what should be an easy fix. If this is a duplicate please feel free to link me to the question with the appropriate answer because I was unable to find it on my own.
Here is the code, thanks for the help
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/iline_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@color/white"
android:gravity="center"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/ll3"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="1"
android:gravity="center"
android:orientation="horizontal" >
<TextView
android:id="@+id/textView5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/b"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/textView6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/distance_edge"
android:textAppearance="?android:attr/textAppearanceMedium" />
<EditText
android:id="@+id/editText2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="4" />
</LinearLayout>
</LinearLayout>
</ScrollView>
In the end I would like the 2nd TextView
to take up the same space 33% of the width as the others and just wrap the text as many times as necessary to do this
Edit
The first text view is only a letter B) so i had to set wrap content on that, then the others worked fine
Here is the code
<LinearLayout
android:id="@+id/ll3"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:orientation="horizontal" >
<TextView
android:id="@+id/textView5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/b"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/textView6"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/distance_edge"
android:textAppearance="?android:attr/textAppearanceMedium" />
<EditText
android:id="@+id/editText2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:ems="4" />
</LinearLayout>
Upvotes: 2
Views: 1250
Reputation: 8559
Now it is correct for sure - I've checked it in IDE.
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/iline_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@color/white"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/ll3"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:layout_gravity="center" >
<TextView
android:id="@+id/textView5"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="some long, long, long text"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/textView6"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="some long, long, long, long, long, long, long, long, long text"
android:textAppearance="?android:attr/textAppearanceMedium" />
<EditText
android:id="@+id/editText2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:ems="4" />
</LinearLayout>
</LinearLayout>
</ScrollView>
Upvotes: 2
Reputation: 18151
<LinearLayout
android:id="@+id/ll3"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="1"
android:weightSum="3"
android:gravity="center"
android:orientation="horizontal" >
<TextView
android:id="@+id/textView5"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/b"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/textView6"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/distance_edge"
android:textAppearance="?android:attr/textAppearanceMedium" />
<EditText
android:id="@+id/editText2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:ems="4" />
</LinearLayout>
Upvotes: 2
Reputation: 10696
Try setting weight attributes for your text views and edit text. The output can look a bit awkward depending on what your strings are and how they wrap.
<LinearLayout
android:id="@+id/ll3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="horizontal" >
<TextView
android:id="@+id/textView5"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="0.33"
android:text="Some string"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/textView6"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="0.33"
android:text="some really, really, really, long string"
android:textAppearance="?android:attr/textAppearanceMedium" />
<EditText
android:id="@+id/editText2"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="0.33"
android:ems="4" />
</LinearLayout>
Upvotes: 1