android 以编程方式更改相对布局

ar5n3qh5  于 2023-05-21  发布在  Android
关注(0)|答案(2)|浏览(118)

我有相对的布局,即。main.xml我设置如下。但是现在我必须把view1放在view2上,width=200dp,height =100dp,这样view2就大了,view1就小了。

public void onCreate(Bundle savedInstanceState) 
         {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
         }

main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/root"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <RelativeLayout
    android:id="@+id/MainPanel"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_above="@id/panel_bottom"
    android:layout_gravity="center_horizontal" >

    <com.proj.demo.view1
        android:id="@+id/sheet"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignWithParentIfMissing="true"
        android:layout_centerInParent="true"
        android:layout_toLeftOf="@+id/panel_quick_buttons"
        />

    <com.proj.demo.view2
        android:id="@+id/sheet2"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignWithParentIfMissing="true"
        android:layout_centerInParent="true"
        android:layout_toLeftOf="@+id/panel_quick_buttons"
      />

</RelativeLayout>
</RelativeLayout>
3pvhb19x

3pvhb19x1#

你想达到什么目的?如果您只想更改宽度和高度,请执行以下操作:

RelativeLayout rl = (RelativeLayout) findViewById(R.id.yourId);
    rl.getLayoutParams().height = 100;
    rl.getLayoutParams().width = 100;
k4emjkb1

k4emjkb12#

我发现一些无效的变化,当尝试改变倍数倍的大小,像这样:

relativeLayout.layoutParams.width = size
relativeLayout.layoutParams.height = size

所以,你可以使用这个Kotlin函数
使用View的layoutParams执行块,并使用更新的版本重新分配layoutParams。

relativeLayout.updateLayoutParams {
    width = size
    height = size
}

相关问题