我在线性布局中定义了两个组件(一个文本视图和一个按钮)。
<LinearLayout
android:id="@+id/layout_1"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/edit_view1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize = "15sp"
android:layout_weight="5"
android:layout_marginTop="20dp"
android:layout_alignParentLeft="true"
android:gravity="center"
android:hint="Write Greeting" />
<ImageButton
android:id="@+id/imageButton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_toRightOf="@+id/edit_view1"
android:layout_alignParentRight="true"
android:background="@android:color/transparent"
android:src="@drawable/e301"/>
</LinearLayout>
如果我写长文本,我的ImageButton
的位置会发生变化。我想解决这个问题。有什么建议吗?
答案 0 :(得分:2)
将您的布局内容替换为:
<LinearLayout
android:id="@+id/layout_1"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/edit_view1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:textSize = "15sp"
android:layout_weight="5"
android:layout_marginTop="20dp"
android:gravity="center"
android:hint="Write Greeting" />
<ImageButton
android:id="@+id/imageButton1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@android:color/transparent"
android:src="@drawable/e301"/>
</LinearLayout>
答案 1 :(得分:1)
你不能在Linear布局中使用RelativeLayout的对齐属性。
查看修改后的代码:
<LinearLayout
android:id="@+id/layout_1"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:weightSum="3"
xmlns:android="http://schemas.android.com/apk/res/android">
<TextView
android:singleLine="false"
android:id="@+id/edit_view1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:textSize = "15sp"
android:layout_marginTop="20dp"
android:text="etegtdrgrgbvcvbghgfffffffffffffffffffffffffffff"
android:gravity="center"
android:hint="Write Greeting"
android:layout_weight="2"/>
<ImageButton
android:id="@+id/imageButton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@android:color/transparent"
android:src="@drawable/ic_launcher"
/>
</LinearLayout>
使用weight和weightSum将布局宽度保持为0 dp,因此会进行调整。另外,对于textview,请将sengleLine保留为false。
输出:
希望这有帮助。
答案 2 :(得分:0)
尝试以下代码: -
<LinearLayout
android:id="@+id/layout_1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:id="@+id/edit_view1"
android:layout_width="0dp"
android:layout_weight="5"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_marginTop="20dp"
android:gravity="center"
android:hint="Write Greeting"
android:textSize="15sp" />
<ImageButton
android:id="@+id/imageButton1"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_toRightOf="@+id/edit_view1"
android:background="@android:color/transparent"
android:src="@drawable/e301" />
</LinearLayout>
使用重量然后你必须有width = 0dp(水平)和heigth = 0dp(垂直)
答案 3 :(得分:0)
使用权重:您没有定义布局的weightSum
,因此您的权重现在无用。将父布局的weightSum
设置为6(以便使用您的值)或100,并将子项的权重设置为百分比。并将子视图的宽度更改为0dp
。
[可选]将按钮的宽度设置为match_parent
,这样就可以占用所有剩余空间。
在LinearLayout layout_toRightOf中,layout_alignParentRight,layout_alignParentLeft是多余的。请改为使用gravity
作为子视图。 (对于Button,它将是'gravity =“right”)。
答案 4 :(得分:0)
使用以下编码。告诉我你是否想要更好的对齐。我使用默认默认图像进行对齐。如果你想要比这更好,那么也要给出buttom图像。
<LinearLayout
android:id="@+id/layout_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_horizontal" >
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1" >
<TextView
android:id="@+id/edit_view1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_marginTop="20dp"
android:gravity="center"
android:hint="Write Greeting dfdsfdsfsdfadsfdfadf"
android:textSize="15sp" />
</RelativeLayout>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="3" >
<ImageButton
android:id="@+id/imageButton1"
android:gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:src="@drawable/ic_launcher" />
</RelativeLayout>
</LinearLayout>