web-dev-qa-db-ja.com

Android-スライディングドロワーを左から右にスライドさせる

以下のXMLレイアウトを使用して、アプリケーションに「SlidingDrawer」を実装しました:(この例はandroidpeople.comから入手しました)

<LinearLayout Android:id="@+id/LinearLayout01"
 Android:layout_width="fill_parent" Android:layout_height="fill_parent"
 xmlns:Android="http://schemas.Android.com/apk/res/Android"
 Android:background="@drawable/androidpeople">

 <SlidingDrawer 
  Android:layout_width="wrap_content" 
  Android:id="@+id/SlidingDrawer" 
  Android:handle="@+id/slideHandleButton" 
  Android:content="@+id/contentLayout" 
  Android:layout_height="75dip"
  Android:orientation="horizontal">

  <Button 
   Android:layout_width="wrap_content" 
   Android:layout_height="wrap_content" 
   Android:id="@+id/slideHandleButton" 
   Android:background="@drawable/closearrow">
  </Button>

  <LinearLayout 
   Android:layout_width="wrap_content" 
   Android:id="@+id/contentLayout" 
   Android:orientation="horizontal" 
   Android:gravity="center|top" 
   Android:padding="10dip" 
   Android:background="#C0C0C0" 
   Android:layout_height="wrap_content">


   <Button Android:id="@+id/Button01" Android:layout_width="wrap_content" Android:layout_height="wrap_content" Android:text="Content"></Button>
   <Button Android:id="@+id/Button02" Android:layout_width="wrap_content" Android:layout_height="wrap_content" Android:text="Content"></Button>
   <Button Android:id="@+id/Button03" Android:layout_width="wrap_content" Android:layout_height="wrap_content" Android:text="Content"></Button>

  </LinearLayout>

 </SlidingDrawer>
</LinearLayout>

しかし、私が欲しいのは、この右から左ではなく、左から右(水平)に引き出しをスライドさせることです。スライド引き出しを左から右の方向にスライドさせるにはどうすればよいですか?

あなたのアイデア/見解/意見/問題を私と共有し、この問題から私を捕まえてください。

14
Paresh Mayani

これに関するチュートリアルは次のとおりです。 link

スライドドロワーの配置がないようです。SDKによって提供されるレイアウト属性が見つかりません。ただし、上記のチュートリアルのように、独自のスライドドロワーウィジェットを作成し、レイアウト属性を適用してスライダー/パネルを配置することができます。


チェックアウトできます https://github.com/umano/AndroidSlidingUpPanel

6
Upvote

これは左から右の引き出しに使用できます。

<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:orientation="horizontal"

Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
>
<TextView 
Android:layout_width="50dip"
Android:layout_height="50dip"
Android:text="@string/hello"
/>
<SlidingDrawer
 Android:id="@+id/drawer"
 Android:layout_width="fill_parent"
 Android:layout_height="wrap_content"
 Android:orientation="horizontal"
 Android:handle="@+id/handle"     
 Android:content="@+id/content">


<ImageView
 Android:id="@id/handle"
 Android:layout_width="50dip"
 Android:layout_height="50dip"  
 Android:src="@drawable/icon"
/>

<LinearLayout
 Android:id="@id/content"
 Android:layout_width="fill_parent"
 Android:layout_height="fill_parent"
 Android:orientation="vertical">
<Button
 Android:layout_width="fill_parent"
 Android:layout_height="fill_parent"
 Android:text="Big Big Button"/>
</LinearLayout>

</SlidingDrawer>
</LinearLayout>
5
Girish R

最善かつ簡単な解決策は、SlidingDrawerに1行のコードを追加することです。Android:rotation = "180"詳細については、 このリンク を参照してください。

4
Hesam

最良の答えは、sephirothが元のSlidingDrawerに基づいて作成したこのコンポーネントを使用することです: http://blog.sephiroth.it/2011/03/29/widget-slidingdrawer-top-to-bottom/

3
user123321

Girish Rの答えを使って、回転させただけです。チャームのように機能します。また、フレームレイアウトを使用して、正しく開くようにしました。

<FrameLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:orientation="horizontal"

    Android:layout_width="fill_parent"
    Android:layout_height="fill_parent"
    >
    <SlidingDrawer
        Android:id="@+id/drawer"
        Android:layout_width="fill_parent"
        Android:layout_height="wrap_content"
        Android:orientation="horizontal"
        Android:handle="@+id/handle"
        Android:rotation="180"
        Android:content="@+id/content">


        <ImageView
            Android:id="@id/handle"
            Android:layout_width="50dip"
            Android:layout_height="50dip"
            Android:src="@drawable/ic_launcher"
            Android:rotation="180"
            />

        <LinearLayout
            Android:id="@id/content"
            Android:layout_width="fill_parent"
            Android:layout_height="fill_parent"
            Android:orientation="vertical"
            Android:rotation="180">
            <Button
                Android:layout_width="fill_parent"
                Android:layout_height="fill_parent"
                Android:text="Big Big Button"/>
        </LinearLayout>
    </SlidingDrawer>
    <TextView
        Android:layout_width="50dip"
        Android:layout_height="50dip"
        Android:text="HELLO WORLD"
        />

</FrameLayout>

SlidingDrawer from left to right

1
130nk3r5