android - 滑动抽屉位置在调整高度时发生变化

标签 android android-layout

我为我的相关布局创建了滑动抽屉,其中包括一些按钮。但是当我调整抽屉的高度时,抽屉按钮的位置会改变而不是它的高度。这是我的 xml 文件......

   <?xml version="1.0" encoding="utf-8"?>
 <FrameLayout
    android:visibility="visible"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" 

    xmlns:android="http://schemas.android.com/apk/res/android">

 <com.measure.sizemesurment2.MyView
    android:id="@+id/DrawViewId"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    </com.measure.sizemesurment2.MyView >

  <SlidingDrawer
    android:id="@+id/drawer"
    android:layout_width="wrap_content"
    android:layout_height="100dip"
    android:content="@+id/content"
    android:handle="@+id/handle" >

  <Button
     android:id="@id/handle"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:background="@drawable/arrow" />

 <RelativeLayout
     android:id="@id/content"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:layout_alignParentBottom="true"
     android:orientation="horizontal" >

     <ImageButton
         android:id="@+id/left"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_alignParentBottom="true"
         android:onClick="ButtonOnClick"
         android:src="@drawable/left" />

     <ImageButton
         android:id="@+id/right"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_alignParentBottom="true"
         android:layout_marginLeft="40dp"
         android:onClick="ButtonOnClick"
         android:src="@drawable/right" />

     <ImageButton
         android:id="@+id/up"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_alignParentBottom="true"
         android:layout_marginLeft="80dp"
         android:onClick="ButtonOnClick"
         android:src="@drawable/up" />

     <ImageButton
         android:id="@+id/down"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_alignParentBottom="true"
         android:layout_marginLeft="120dp"
         android:onClick="ButtonOnClick"
         android:src="@drawable/down" />

     <Button
         android:id="@+id/plus"
         android:layout_width="40dp"
         android:layout_height="wrap_content"
         android:layout_alignParentBottom="true"
         android:layout_marginLeft="180dp"
         android:onClick="ButtonOnClick"
         android:text="+"
         android:textSize="20dp" />

     <Button
         android:id="@+id/minus"
         android:layout_width="40dp"
         android:layout_height="wrap_content"
         android:layout_alignParentBottom="true"
         android:layout_marginLeft="220dp"
         android:onClick="ButtonOnClick"
         android:text="-"
         android:textSize="20dp" />

     <Button
         android:id="@+id/ok"
         android:layout_width="60dp"
         android:layout_height="wrap_content"
         android:layout_alignParentBottom="true"
         android:layout_marginLeft="260dp"
         android:onClick="ButtonOnClick"
         android:text="OK"
         android:textSize="20dp" />
   </RelativeLayout>
</SlidingDrawer>

</FrameLayout>

其中 MyView 是用于在 Canvas 上绘制的类。当我将 SlidingDrawer 高度设置为填充父级时,我在布局的底部得到了按钮。但它的高度是 parent 的高度,我需要有限的高度,我所有的按钮都应该位于布局的底部...... 提前致谢......

您好,这是我得到的图像,第一个是设置壁板高度“fill_parent”时产生的,第二个是 100dip

image1 image2

最佳答案

它的发生是因为你所有的按钮都驻留在 RelativeLayout 中,它是 SliderDrawable 的 child ,所以你需要从中取出你的按钮,

做这样的事情

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

    <SlidingDrawer
        android:id="@+id/drawer"
        android:layout_width="wrap_content"
        android:layout_height="50dp"
        android:content="@+id/content"
        android:handle="@+id/handle" >

        <Button
            android:id="@+id/handle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@android:color/white"
            android:textSize="50dp"
            android:text="^"
            android:textColor="@android:color/black" />

        <RelativeLayout
            android:id="@+id/content"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" >
        </RelativeLayout>
    </SlidingDrawer>

  <com.measure.sizemesurment2.MyView
    android:layout_below="@+id/drawer"
    android:layout_above="@+id/linear_bottom"
    android:id="@+id/DrawViewId"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    </com.measure.sizemesurment2.MyView >

    <LinearLayout
        android:id="@+id/linear_bottom"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:orientation="horizontal" >

        <ImageButton
            android:id="@+id/left"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:onClick="ButtonOnClick" />

        <ImageButton
            android:id="@+id/right"
            android:layout_width="0dip"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:onClick="ButtonOnClick" />

        <ImageButton
            android:id="@+id/up"
            android:layout_width="0dip"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:onClick="ButtonOnClick" />

        <ImageButton
            android:id="@+id/down"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:onClick="ButtonOnClick" />

        <Button
            android:id="@+id/plus"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:onClick="ButtonOnClick"
            android:text="+" />

        <Button
            android:id="@+id/minus"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:onClick="ButtonOnClick"
            android:text="-" />

        <Button
            android:id="@+id/ok"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:onClick="ButtonOnClick"
            android:text="OK" />
    </LinearLayout>

</RelativeLayout>

输出:

enter image description here

关于android - 滑动抽屉位置在调整高度时发生变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13025353/

相关文章:

Android MotionLayout setGuidelinePercent 不适用于 alpha4 版本

Android:更改布局时多次使用 setContentView 不好吗?

android - 从git克隆后Gradle Build连接超时

java - Google App Engine Cloud Endpoints userId 为空

android - R.id无法解析

android - 如何在相对布局中以父 View 为中心对齐下方的 View

android - FrameLayout边距不起作用

Android 底部导航更改项目选择的文本和图标色调

android - 将 android 模拟时钟对齐到最左边

android - 如何定义适用于 720p 和 1080p 屏幕的布局?