我正在尝试构建一个布局。我使用水平LinearLayout,在其中我有一个imageview,另一个布局和另一个imageview。关键是两个图像视图应位于左侧和右侧,大小为10 dp。中心LinearLayout应拉伸到屏幕但左右不带10dp。
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<ImageView
android:id="@+id/li_iv"
android:layout_width="10dp"
android:layout_height="match_parent"
android:layout_gravity="left"
android:background="@drawable/pen" />
<LinearLayout
android:id="@+id/li_ll"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginRight="10dp"
android:background="@drawable/back"
android:orientation="vertical" >
<TextView
android:id="@android:id/title"
android:layout_width="match_parent"
android:layout_height="28dp"
android:layout_marginLeft="28dp"
android:layout_marginRight="28dp"
android:textSize="22sp"
android:textStyle="bold" />
<TextView
android:id="@android:id/content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="15dp"
android:layout_marginLeft="29dp"
android:layout_marginRight="31dp"
android:layout_marginTop="5dp"
android:background="@drawable/back_repeat"
android:text="aaaaaaaaaa\n"
android:textSize="16dp" />
<ImageView
android:id="@+id/li_rl_center_right"
android:layout_width="10dp"
android:layout_alignParentRight="true"
android:layout_height="match_parent"
android:layout_gravity="right"
android:background="@drawable/pen" />
</LinearLayout>
但这不会发生。右侧imageview位于主LinearLayout的边界之外 - 在其右侧,因此实际上在屏幕之外,因为主LinearLayout宽度填充父级。 我不使用relativeLayout,因为内容没有拉伸到父级的大小,而是扩展到eclipse中图形布局中整个屏幕的大小,而在手机上,imageViews只有父级的默认大小。当在textview内部有更多行时,侧面的图像不会伸展。
我有什么想法可以将这个ImageView放回布局右侧的背面吗?
答案 0 :(得分:1)
您应该使用相对布局,请尝试以下代码:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<ImageView
android:id="@+id/li_iv"
android:layout_width="10dp"
android:layout_height="match_parent"
android:layout_alignBottom="@+id/li_ll"
android:layout_alignParentLeft="true"
android:background="@drawable/pen" />
<LinearLayout
android:id="@+id/li_ll"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toLeftOf="@+id/li_rl_center_right"
android:layout_toRightOf="@+id/li_iv"
android:background="@drawable/back"
android:orientation="vertical" >
<TextView
android:id="@android:id/title"
android:layout_width="match_parent"
android:layout_height="28dp"
android:layout_marginLeft="28dp"
android:layout_marginRight="28dp"
android:textSize="22sp"
android:textStyle="bold" />
<TextView
android:id="@android:id/content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="15dp"
android:layout_marginLeft="29dp"
android:layout_marginRight="31dp"
android:layout_marginTop="5dp"
android:background="@drawable/back_repeat"
android:text="aaaaaaaaaa\n"
android:textSize="16dp" />
</LinearLayout>
<ImageView
android:id="@+id/li_rl_center_right"
android:layout_width="10dp"
android:layout_height="match_parent"
android:layout_alignBottom="@+id/li_ll"
android:layout_alignParentRight="true"
android:layout_gravity="right"
android:background="@drawable/pen" />
</RelativeLayout>
答案 1 :(得分:0)
您需要将所有内容设置为android:layout_width="match_parent"
,然后使用weight
指定每个屏幕占用的内容。
答案 2 :(得分:0)
我在空间上使用了隐藏按钮。
<LinearLayout
android:id="@+id/buttons"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="2dp"
android:layout_marginEnd="5dp"
android:layout_marginBottom="5dp"
android:orientation="horizontal">
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10dp"
android:text="Text"
android:textSize="14sp"
android:visibility="visible" />
<!-- Non-Visible Button For Space: "Weight" and "Visibility" are important. -->
<Button
android:id="@+id/space"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="Button"
android:visibility="invisible" />
<ImageButton
android:id="@+id/other"
style="@style/MiniPlayerButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:padding="10dp"
app:srcCompat="@drawable/ic_other"
android:textAllCaps="false"
android:textSize="14sp"
android:visibility="visible"
android:contentDescription="Desc" />
</LinearLayout>