【发布时间】:2014-09-16 23:44:33
【问题描述】:
我的布局中有一个简单的按钮。将leftMargin 设置为实际显示不同结果的视图。
my_layout.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/left_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10dp"
android:text="hello pandora"/>
</RelativeLayout>
在我的活动中,我将leftMargin 属性设置为按钮。
Button leftBtn = (Button) findViewById(R.id.left_btn);
LayoutParams params = (LayoutParams) leftBtn.getLayoutParams();
params.leftMargin = 550;
如果我将leftMargin 设置为负值或0,它工作正常,但如果我设置的值大于屏幕宽度,它只是调整大小/压缩按钮。我预计按钮会像负值一样超出范围。
我预计第三张图片中的按钮会像第一张图片中的按钮一样越界。
请不要说在布局中设置按钮layout_alignParentRight="true",在活动中设置rightMargin = -50(这可行),因为我想将按钮从左向右移动。
【问题讨论】:
-
如果您获得按钮的宽度并以 dps 中的实际宽度以编程方式覆盖 wrap_content 会发生什么?另一种猜测是将父视图 paddingRight 设置为负值。
-
@Gyebro 我已经尝试了你的第一个解决方案,但它实际上是删除了整个文本“pandora”。请查看我对 raj 答案的评论,因为它显示了相同的结果。对于您的第二个解决方案,将 paddingRight 设置为负值时位置根本不会改变。