Android: SlidingDrawer с bottomOffset и видимым контентом - PullRequest
1 голос
/ 20 февраля 2012

У меня возникла проблема с SlidingDrawer в Android. Я строю ширму с горизонтальным выдвижным ящиком. Работает нормально, открывается и закрывается, как и ожидалось. Я установил параметр bottomOffset как 50dip, чтобы видеть содержимое в 50 dpi, когда ящик закрыт, но этого не происходит.

Когда ящик закрыт, я вижу расстояние 50 dip между правой стороной экрана и ручкой, но затем представление содержимого становится невидимым, поэтому между ручкой и краем экрана остается черное пространство в 50 dip, так как изображение ниже показывает:

enter image description here

Когда я нажимаю кнопку дескриптора, кажется, что видимость контента меняется на видимую, а затем он появляется. Я хотел бы, чтобы содержимое отображалось без нажатия на ручку, как на изображении ниже:

enter image description here

Я загрузил исходный код SlidingDrawer с http://blog.sephiroth.it/2011/03/29/widget-slidingdrawer-top-to-bottom/, чтобы попытаться изменить код и получить ожидаемый результат, но я не получаю.

XML для выдвижного ящика:

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

android:layout_width="fill_parent"
android:layout_height="fill_parent">

<br.com.dina.partial.example.MultiDirectionSlidingDrawer
    xmlns:my="http://schemas.android.com/apk/res/br.com.dina.partial.example"
    android:id="@+id/map_slider" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_alignParentBottom="true" 
    my:handle="@+id/Handle"
    my:content="@+id/ViewLayout"
    my:direction="rightToLeft"        
    my:bottomOffset="-65dip"
    android:layout_below="@+id/test">

    <Button android:id="@+id/Handle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="handle"/>

    <LinearLayout android:id="@+id/ViewLayout"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >

        <com.markupartist.android.widget.ActionBar 
            android:id="@+id/actionbar" 
            style="@style/ActionBar"/>     

        <FrameLayout android:id="@+id/ViewContent"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:background="@android:color/white" />

    </LinearLayout>

</br.com.dina.partial.example.MultiDirectionSlidingDrawer>

</RelativeLayout>    

Есть ли способ добиться того, чего я хочу?

Большое спасибо

отредактировано для добавления xml

1 Ответ

0 голосов
/ 20 февраля 2012

Используйте onDrawerScrollListener, onDrawerOpenListener и onDrawerCloseListener, чтобы изменить видимость определенных элементов в зависимости от состояния ящика.Поэтому, когда вы говорите «ящик закрыт ... и представление контента невидимо», тогда в вашем onDrawerCloseListener установите представление контента на VISIBLE.Попробуйте и дайте мне знать, как это происходит.

РЕДАКТИРОВАТЬ так что вы сделали что-то вроде этого?:

drawer.setOnDrawerCloseListener(new OnDrawerCloseListener(){
        @Override
        public void onDrawerClosed() {
            //get the ViewContent by id and set visibility to VISIBLE
    });
...