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

标签 android android-layout height width slidedown

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

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

如果我像下面这样设置属性,屏幕上只会显示“Handle 1”。

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

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

ma​​in.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 直接放在第一个 SlidingDrawer 的下面。尝试更改第二个按钮的大小(例如,使文本变长)并查看它是否在按钮 1 的两侧突出。

关于Android layout_width & layout_height,它是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8698687/

相关文章:

Android: LinearLayout addView 动画

android - ConstraintLayout 问题(最大宽度、尺寸比和链样式)

html - 侧边栏未到达内容 div 的底部

silverlight - 如何防止用户调整 silverlight 浏览器外窗口的大小?

java - 在 Eclipse 中导入项目的一部分

Android响应汽车中的蓝牙音频按钮 - ExoPlayer

java - 使用 "setUncaughtExceptionHandler"和 "Toast"的全局异常处理

Android:在单个列表中创建选项菜单

html - 由具有绝对定位的图像定义的 Div 高度?

java - 我是否需要一个新线程来填充自定义 ListAdapter?