Android layout_width&layout_height,它是如何工作的?

Yaq*_*mad 6 height android slidedown width android-layout

我正在尝试创建一个界面,其中两个或多个按钮将显示给用户,如果单击一个按钮,将向他显示一些布局.我正在使用SlidingDrawer来实现此目的.

好吧,我对layout_width和layout_height属性感到困惑.

如果我设置如下所示的属性,则屏幕上仅显示"手柄1".

android:layout_width="fill_parent" android:layout_height="wrap_content"
Run Code Online (Sandbox Code Playgroud)

老实说,我对这两个属性都知之甚少.有人可以分享他对他们的了解吗?

main.xml中:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <SlidingDrawer android:id="@+id/slidingDrawer1"
            android:layout_width="fill_parent" android:layout_height="wrap_content"
            android:handle="@+id/handle1"
            android:content="@+id/content1">
                <Button android:text="Handle 1" android:layout_height="wrap_content"
                        android:layout_width="fill_parent" android:id="@+id/handle1"></Button>
                <LinearLayout android:id="@+id/content1"
                        android:layout_width="fill_parent" android:layout_height="wrap_content"
                        android:orientation="vertical" android:gravity="center"
                        android:background="#FF444444">
                        <Button android:text="Handle 1 Item 1" android:layout_height="wrap_content"
                                android:layout_width="wrap_content" android:id="@+id/item1"></Button>
                </LinearLayout>
    </SlidingDrawer>

    <SlidingDrawer android:id="@+id/slidingDrawer2"
            android:layout_width="fill_parent" android:layout_height="wrap_content"
            android:handle="@+id/handle2"
            android:content="@+id/content2">
                <Button android:text="Handle 2" android:layout_height="wrap_content"
                        android:layout_width="fill_parent" android:id="@+id/handle2"></Button>
                <LinearLayout android:id="@+id/content2"
                        android:layout_width="fill_parent" android:layout_height="wrap_content"
                        android:orientation="vertical" android:gravity="center"
                        android:background="#FF444444">
                        <Button android:text="Handle 2 Item 1" android:layout_height="wrap_content"
                                android:layout_width="wrap_content" android:id="@+id/item2"></Button>
                </LinearLayout>
    </SlidingDrawer>     
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

Ted*_*opp 6

layout_widthlayout_height的图的特性旨在被其父容器一起使用.有些容器会忽略其中一个或两个; 最尊敬他们.您需要查阅容器的文档(在您的情况下,SlidingDrawer)以了解如何使用这些值.

您没有显示完整的main.xml,因此很难确切地说出了什么问题.如果您发布了错误的图像,这也会有所帮助.

编辑

看到完整的布局后,我认为这里的基本问题是你使用的是LinearLayout来包含SlidingDrawers.正如SlidingDrawer文档所说,它们需要在FrameLayout或RelativeLayout中(实际上,任何允许多个视图相互叠加的容器).

另一种可能性是第二个SlidingDrawer直接放在第一个下面.尝试更改第二个按钮的大小(例如,使文本更长),看看它是否在按钮1的两侧拨出.