我很难在LinearLayout内的单行中设置imageView和textView。我尝试了不同的方法,但仍然找不到合适的解决方案。这是我使用的代码:
<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>
出现的方式如下:
为了纠正这个问题,我该怎么做?
答案 0 :(得分:1)
它位于LinearLayout
内,垂直orientation
所以一切都是“垂直”堆叠的。将它们包裹在LinearLayout
的水平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>
默认情况下,LinearLayout
的横向为orientation
,因此无需在包含两个LinearLayout
的子View
中提供该属性。
答案 1 :(得分:1)
Use android:layout_gravity="center_vertical" for your textview
答案 2 :(得分:0)
我建议使用RelativeLayout。这样你也可以垂直添加更多项目。
答案 3 :(得分:0)
您需要更改linearylayout的方向。只需更改android:orientation="vertical"
到
android:orientation="horizontal"
答案 4 :(得分:0)
您可以尝试在TableLayout
中包含ImageViews和TextViews<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" />