我正在尝试创建一个界面,其中将向用户显示两个或更多按钮,如果单击一个按钮,则会向他显示一些布局。我为此使用 SlidingDrawer

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

如果我将属性设置如下,则仅在屏幕上显示“句柄1”。

android:layout_width="fill_parent" android:layout_height="wrap_content"

老实说,我对这两个属性都没有足够的了解。 有人可以分享他的知识吗?

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>

最佳答案

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

您没有显示完整的main.xml,因此很难确切地说出问题所在。如果您发布错误图片,也将有所帮助。

编辑

看到完整的布局后,我认为这里的基本问题是您正在使用LinearLayout来包含SlidingDrawers。如docs for SlidingDrawer所述,它们需要位于FrameLayout或RelativeLayout中(实际上,任何允许多个 View 相互重叠的容器)。

另一种可能性是将第二个SlidingDrawer直接放在第一个的下面。尝试更改第二个按钮的大小(例如,使文本变长),然后查看它是否在按钮1的两边戳出来。

10-06 06:54