如何通过java代码更改android:layout_alignParentRight运行时

时间:2012-03-28 10:08:25

标签: android android-layout

我有聊天列表视图,其中发送者名称应该左对齐,接收者的回复应该在右侧,然后当接收者成为发送者时反之亦然。

这是我的xml文件:

<?xml version="1.0" encoding="utf-8"?>

<TextView android:id="@+id/chatmessagename"
    android:layout_width="fill_parent" android:layout_height="wrap_content"
    android:layout_alignParentLeft="true" 
    android:layout_alignParentTop="true"
    android:textSize="16sp" android:textStyle="bold"
    android:paddingBottom="1dp" />
<TextView android:id="@+id/chatmessagedate"
    android:layout_width="wrap_content" android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_alignParentTop="true"    
    android:autoLink="none" />
<TextView android:id="@+id/chatmessagetext"
    android:layout_width="wrap_content" android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_below="@id/chatmessagename"
    android:autoLink="all" />

现在在运行时我想更改textview的layout_alignParentRight值。有可能吗?

3 个答案:

答案 0 :(得分:13)

尝试:

... 
RelativeLayout.LayoutParams layoutParams =(RelativeLayout.LayoutParams)yourView.getLayoutParams();
layoutParams.addRule(RelativeLayout.ALIGN_PARENT_.....); //ALIGN_PARENT_RIGHT / LEFT etc.
yourView.setLayoutParams(params);
... 

答案 1 :(得分:1)

是的,你可以使用这些东西: -

            RelativeLayout.LayoutParams rlp = new RelativeLayout.LayoutParams(
                android.widget.RelativeLayout.LayoutParams.WRAP_CONTENT,
                android.widget.RelativeLayout.LayoutParams.WRAP_CONTENT);


rlp.addRule(RelativeLayout.ALIGN_RIGHT,
                    textviewid);

形成这段代码,你得到一些参考..

答案 2 :(得分:0)

使用此代码

RelativeLayout.LayoutParams _params = new RelativeLayout.LayoutParams(
                          LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
        _params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
        apps_layout.setLayoutParams(_params);