如何修复水平线性布局中每个元素的宽度。如图所示?
我已使用代码更新了问题。帮助将不胜感激。谢谢!
<
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/l1"
android:orientation="horizontal"
android:layout_height="87dp"
android:layout_width="match_parent"
android:paddingBottom="9dp"
android:paddingLeft="19dp"
android:paddingRight="19dp"
android:paddingTop="9dp"
android:gravity="center"
>
<ImageView
android:id="@+id/fbprofile_picture"
android:layout_width="63dp"
android:layout_height="63dp"
android:src="@drawable/ic_logo_new"/>
<TextView
android:id="@+id/fbprofile_name"
android:layout_width="wrap_content"
android:layout_height="18dp"
android:fontFamily="sans-serif-condensed"
android:paddingLeft="17dp"
android:paddingRight="17dp"
android:text="Faiza Zainab Ahmad " />
<TextView
android:id="@+id/btn_fbfriends_connect"
android:layout_width="100dp"
android:layout_height="40dp"
android:layout_weight="2.31"
android:background="@color/ThemeLightBlue"
android:gravity="center"
android:padding="8dp"
android:text="CONNECT"
android:textColor="#ffffff"
android:textSize="16sp"
/>
</LinearLayout>
&GT;
答案 0 :(得分:2)
更好的布局实现就像这样
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
使用权重将布局划分为比例宽度。
答案 1 :(得分:2)
试试这个,ImageView和Button将保持其大小,TextView将填充其余空间。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:scaleType="fitCenter"
android:src="@drawable/my_image" />
<TextView
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:gravity="center"
android:layout_weight="1"
android:text="Some text" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="The Button" />
</LinearLayout>
答案 2 :(得分:1)
您可以静态设置图片的宽度。即:android:layout_width="96dp"
在这种情况下,最好使用 RelativeLayout 而不是 LinearLayout 和权重。即:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?listPreferredItemHeight"
android:paddingBottom="8dp"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:paddingTop="8dp">
<ImageView
android:id="@+id/image"
android:layout_width="72dp"
android:layout_height="72dp"
android:layout_centerVertical="true"
android:src="@mipmap/ic_launcher"/>
<TextView
android:id="@+id/text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:layout_toLeftOf="@+id/button"
android:layout_toRightOf="@+id/image"/>
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"/>
</RelativeLayout>
答案 3 :(得分:1)
您可以在LinearLayout中添加weightSum
,并将layout_weight
添加到该LinearLayout的子项中,例如:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:weightSum="3"
android:orientation="horizontal">
<ImageView
android:layout_width="100dp"
android:layout_height="match_parent"
android:layout_weight="0.5"
android:src="@drawable/ic_group_white_24dp"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="2"/>
<Button
android:layout_width="150dp"
android:layout_height="wrap_content"
android:layout_weight="0.5"/>
</LinearLayout>
答案 4 :(得分:0)
要获得最高LinearLayout
,您可以layout_weight
使用值为1的TextView
来填充ImageView
和Button
之间的空格
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="horizontal">
<ImageView
android:layout_width="80dp"
android:layout_height="80dp" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>