Reputation: 319
I'm struggling to set an imageView and a textView in a single line inside LinearLayout. I tried with different ways but still I couldn't find a proper solution. Here is the code I used:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="40dp"
android:clickable="true"
android:orientation="vertical"
android:paddingLeft="40dp"
tools:context=".MainActivity" >
<ImageView
android:id="@+id/icon_image"
android:layout_width="30sp"
android:layout_height="30sp"
android:layout_weight="1"
android:adjustViewBounds="true"
android:layout_gravity="bottom"
android:scaleType="fitXY"
android:src="@drawable/ic_launcher"/>
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawablePadding="5dp"
android:layout_weight="1"
android:gravity="center_vertical"
android:textSize="14sp"
android:textStyle="bold" >
</TextView>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@android:color/black" />
</LinearLayout>
This is how it is appear :
What should I have to do to make correct this?
Upvotes: 0
Views: 4231
Reputation: 56
You can try enclosing your ImageViews and TextViews inside a TableLayout
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="40dp"
android:clickable="true"
android:orientation="vertical"
android:paddingLeft="40dp"
tools:context=".MainActivity" >
<TableLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TableRow>
<ImageView
android:id="@+id/icon_image"
android:layout_width="30sp"
android:layout_height="30sp"
android:layout_weight="1"
android:adjustViewBounds="true"
android:layout_gravity="bottom"
android:scaleType="fitXY"
android:src="@drawable/ic_launcher"/>
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawablePadding="5dp"
android:layout_weight="1"
android:gravity="center_vertical"
android:textSize="14sp"
android:textStyle="bold" />
</TableRow>
</TableLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@android:color/black" />
Upvotes: 0
Reputation: 860
You need to change the linearylayout's orientation. Just change android:orientation="vertical"
to
android:orientation="horizontal"
Upvotes: 0
Reputation: 402
I suggest to use a RelativeLayout. That way you can add more items vertically as well.
Upvotes: 0
Reputation: 44571
Its inside of a LinearLayout
with a vertical orientation
so naturally everything is stacked "vertically". Wrap them in a LinearLayout
with a horizontal orientation
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="40dp"
android:clickable="true"
android:orientation="vertical"
android:paddingLeft="40dp"
tools:context=".MainActivity" >
<LinearLayout
.../>
<ImageView
android:id="@+id/icon_image"
android:layout_width="30sp"
android:layout_height="30sp"
android:layout_weight="1"
android:adjustViewBounds="true"
android:layout_gravity="bottom"
android:scaleType="fitXY"
android:src="@drawable/ic_launcher"/>
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawablePadding="5dp"
android:layout_weight="1"
android:gravity="center_vertical"
android:textSize="14sp"
android:textStyle="bold" >
</TextView>
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@android:color/black" />
</LinearLayout>
By default, LinearLayout
has a horizontal orientation
so no need to supply that property in the child LinearLayout
which wraps the two View
s.
Upvotes: 1