调整布局大小

时间:2016-03-31 10:20:04

标签: android view resize

我在这样的容器中有两个视图。

[ContainerView    
[view 1 (RelativeLayout)]    
[view 2 (RelativeLayout)]    
(Relative Layout)]

并且id喜欢在没有给出某个变量时隐藏view1。我似乎无法找到解决方案

  1. 完全隐藏view1
  2. resive view2以填充整个ContainerView
  3. 现在我知道这个问题已被问了十亿次,但所有解决方案根本不适合我...

    以下是代码的一部分:

    布局:

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#eeeeee"
    android:id="@+id/mainview">
    
    
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_marginLeft="0dp"
        android:layout_marginBottom="50dp"
        android:elevation="4dp"
        android:background="@android:color/white"
        android:layout_alignParentTop="true"
        android:id="@+id/header">
    
        <TextView
            android:id="@+id/headertext"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@android:color/white"
            android:text="Large Text"
            android:padding="15dp"
            android:textColor="@android:color/black"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:textSize="50dp"
            android:layout_marginLeft="0dp"
            android:layout_marginRight="0dp"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true" />
    </RelativeLayout>
    
    <RelativeLayout
        android:id="@+id/upperview"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_alignParentStart="true"
        android:layout_below="@+id/lowerview"
        android:layout_above="@+id/header">
    
        <LinearLayout
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@android:color/white"
            android:elevation="4dp"
            android:id="@+id/vanisherView"
            android:layout_centerHorizontal="true"
            android:layout_margin="20dp">
    
            <TextView
                android:id="@+id/erklareung"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:textColor="@android:color/black"
                android:background="@android:color/white"
                android:padding="40dp"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:textSize="35dp"
                android:layout_alignParentTop="true"
                android:layout_alignParentEnd="true" />
    
        </LinearLayout>
    
    
    </RelativeLayout>
    
    
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="470dp"
        android:id="@+id/lowerview"
        android:padding="20dp"
        android:background="@android:color/white"
        android:elevation="4dp"
        android:layout_above="@+id/bottom">
    </RelativeLayout>
            <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingBottom="20dp"
        android:paddingLeft="20dp"
        android:paddingRight="20dp"
        android:layout_marginLeft="0dp"
        android:id="@+id/bottom"
        android:paddingTop="30dp"
        android:layout_alignParentBottom="true">
    
        <Button
            android:id="@+id/back"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Button"
            android:textSize="30dp" />
    
        <Button
            android:id="@+id/nextButton"
            android:layout_width="match_parent"
            android:layout_height="80dp"
            android:layout_weight="0.5"
            android:text="Button"
            android:textSize="30dp"
            android:background="#009688"
            android:textColor="#ffffff" />
    </LinearLayout>
    </RelativeLayout>
    

    我尝试使用的是

    1. upperview.getLayoutParams().height = 0; lowerview.getLayoutParams().height = 900; mainview.invalidate()
    2. 与requestLayout相同
    3. 为具有静态尺寸的较低布局创建新的RelativeLayout
    4. upperview.setVisibility(View.INVISIBLE); lowerview.getLayoutParams().height = 900;
    5. 干杯

      雅克布斯

1 个答案:

答案 0 :(得分:1)

我不确定你为实现这个目的已经尝试过什么。供您参考,我发布了一个示例代码,用于实现相同的输出。

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

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

<RelativeLayout
    android:id="@+id/rlView1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="Text Field in View 1" />
</RelativeLayout>

<RelativeLayout
    android:id="@+id/rlView2"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_below="@+id/rlView1">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="Text Field in View 2" />
 </RelativeLayout>

</RelativeLayout>

请注意,您必须使用rlView1.setVisiblity(View.GONE)才能使rlView2与父级相同。