Custom SlidingDrawer的布局定位问题

时间:2011-07-07 16:38:18

标签: android layout android-layout relativelayout

大家好,我一直试图让这项工作工作很长一段时间,我觉得卡住了,我发现网上有一个component非常好,它允许我从上到下滑动,默认样本是这个酒吧很容易上升而且下降了:

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

    <Button
        android:id="@+id/button_open"
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        android:text="@string/open"
        android:layout_centerInParent="true"
        android:visibility="gone" />

        <TextView android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceMedium" android:layout_width="wrap_content" 
        android:text="@string/default_feed_detail" android:id="@+id/txtDetailNews" ></TextView>

    <it.sephiroth.demo.slider.widget.MultiDirectionSlidingDrawer
        xmlns:my="http://schemas.android.com/apk/res/it.sephiroth.demo.slider"
        android:id="@+id/drawer"
        my:direction="topToBottom"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        my:handle="@+id/handle"
        my:content="@+id/content">
        <include
            android:id="@id/content"
            layout="@layout/pen_content" />

        <ImageView
            android:id="@id/handle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/sliding_drawer_handle_bottom" />
    </it.sephiroth.demo.slider.widget.MultiDirectionSlidingDrawer>
</RelativeLayout>

它的表现非常好:

enter image description here

但是现在我想在文本之间有一个标题图像,然后是自定义的slidedrawer,它只是不呈现文本

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

    <Button android:id="@+id/button_open" android:layout_width="100dp"
        android:layout_height="wrap_content" android:text="@string/open"
        android:layout_centerInParent="true" android:visibility="gone" />

    <ImageView android:id="@+id/header" android:src="@drawable/header"
        android:layout_height="wrap_content" android:layout_width="wrap_content"></ImageView>




    <it.sephiroth.demo.slider.widget.MultiDirectionSlidingDrawer
        xmlns:my="http://schemas.android.com/apk/res/it.sephiroth.demo.slider"
        android:layout_below="@id/header"
        android:id="@+id/drawer" my:direction="topToBottom"
        android:layout_width="fill_parent" android:layout_height="wrap_content"
        my:handle="@+id/handle" my:content="@+id/content">
        <include android:id="@id/content" layout="@layout/pen_content" />

        <ImageView android:id="@id/handle" android:layout_width="wrap_content"
            android:layout_height="wrap_content" android:src="@drawable/sliding_drawer_handle_bottom" />
    </it.sephiroth.demo.slider.widget.MultiDirectionSlidingDrawer>

    <TextView android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:layout_below="@id/drawer"
        android:layout_width="wrap_content" android:text="@string/default_feed_detail"
        android:id="@+id/txtDetailNews"></TextView>


</RelativeLayout>

现在文字消失了....任何有相对布局的建议,或者如果有人有想法或组件,那么它可以很容易地完成,这太棒了,谢谢!!

修改

我发现了使用以下布局来组织层次结构的有趣内容:

<it.sephiroth.demo.slider.widget.MultiDirectionSlidingDrawer
    xmlns:my="http://schemas.android.com/apk/res/it.sephiroth.demo.slider"
    android:layout_above="@id/txtDetailNews"
    android:id="@+id/drawer" my:direction="topToBottom"
    android:layout_width="fill_parent" android:layout_height="wrap_content"
    my:handle="@+id/handle" my:content="@+id/content">
    <include android:id="@id/content" layout="@layout/pen_content" />

    <ImageView android:id="@id/handle" android:layout_width="wrap_content"
        android:layout_height="wrap_content" android:src="@drawable/sliding_drawer_handle_bottom" />
</it.sephiroth.demo.slider.widget.MultiDirectionSlidingDrawer>

似乎抽象内部的组件正在渲染并占据所有空间,如下所示:

enter image description here

enter image description here

3 个答案:

答案 0 :(得分:1)

首先,你真的需要证明你的问题。如果您修复了一些非常基本的语法错误并对您所编写的内容添加了一些说明,那么您现在可能已经有了更多的响应。

以下是一些尝试:将TextView移动到XML中的滑动抽屉上方,就像在第一个布局中一样。保留android:layout_below =“@ id / drawer”属性 - 但如果它不起作用,请尝试删除它。

试试看,我们会从那里开始。

答案 1 :(得分:0)

在最后一个TextView上尝试:android:layout_alignWithParentIfMissing="@id/header"

答案 2 :(得分:0)

我必须对此做一些解决方法,因为背景上的内容占用了空间,而Textview正在放弃它的空间我所做的如下:

我将标题imageView后面的TextView放在一个100dip的paddingTop上。

    android:layout_width="wrap_content" android:text="@string/default_feed_detail"
    android:id="@+id/txtDetailNews" android:layout_alignWithParentIfMissing="@id/header" ></TextView>

然后在MultiDirectionalSlidingDrawer上我用android:layout_above="@id/txtDetailNews"

设置内容

这几乎解决了内容和标题之间滑动的问题,谢谢大家帮我解决...特别是Nathan Fig你赢得那50个人(y)