Android 动态改变布局文件里元素位置

问题描述:

在开发过程中有时候会遇到这样的需求:在同一个布局文件中有两个元素A、B,他们有时候A在上面,有时候B要在上面,如果A、B都是代码new出来的,或者在单独的xml文件里则比较简单,直接在代码里按照需要的顺序add进去就行了,但是我们现在不想那么麻烦把A、B单独拆分出来,只想改变A、B在xml文件里的顺序要如何做呢?

解决思路:

将布局文件里的A(id:view_a)、B(id:view_b)元素放到一个新的容器里,比如LinearLayout,给它设置一个id(比如叫:parent),然后在代码里通过id引用这三个View:mViewA,mViewB,mViewParent。在需要改变A、B顺序的时候,先把mViewParent里的元素全部清除掉(removaAllViews),然后按照需要的顺序重新把mViewA,mViewB添加到mViewParent里,这样就达到我们想要的效果了

代码实现:

原布局文件伪代码:

<LinearLayout
    android:orientation="vertical">
    <TextView android:id="@+id/view_a"/>
    <TextView android:id="@+id/view_b"/>
</LieanrLayout>

修改后布局文件伪代码:

<LinearLayout
    android:orientation="vertical">

    <LinearLayout android:id="@+id/parent"
                  android:orientation="vertical">
        <TextView android:id="@+id/view_a"/>
        <TextView android:id="@+id/view_b"/>
    </LinearLayout>

</LieanrLayout>

java伪代码:

private TextView mViewA;
private TextView mViewB;
private LiearLayout mViewParent;

{
    //将B动态的放到A的上面
    mViewParent.removeAllViews();
    mViewParent.add(mViewB);
    mViewParent.add(mViewA);
}

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值