2011-11-15 5 views
5

私はアプリケーションを起動しようとしています。これは私がAndroidスライディングパネル

left and right red sliders ; main white content

欲しいもの両方赤いパネルは両側にスライドすることができるはずですし、それらの1つ(または両方)の場合は白1は拡大すべきである

彼らはそのパネルを占有し、折りたたまれていますスペース。 画面に赤いパネルがあると、白いパネルはすべてのコンテンツを表示し、いずれのパネルにも表示されません。

これまでに何を試してみましたか: 私は2つのSlidingDrawerを試して始めましたが、白いパネルが赤いものの後ろにありました。 その後、2 LinearLayouts(赤いパネル)とRelativeLayout(白いパネル)を試し、ボタンのレイアウトの幅を変更しようとしました(上の画像のように)。これは常に解決する方法がわからないという問題を引き起こしました。

提案?

編集:SlidingDrawer例の XML:

<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:orientation="vertical" 
android:gravity="bottom" 
android:background="#FFFFFFFF"> 
<SlidingDrawer 
    android:layout_width="100dip" 
    android:id="@+id/SlidingDrawer" 
    android:handle="@+id/slideHandleButton" 
    android:content="@+id/contentLayout" 

    android:layout_height="fill_parent" 
    android:orientation="horizontal"> 

    <LinearLayout 
     android:layout_width="wrap_content" 
     android:id="@+id/contentLayout" 
     android:orientation="horizontal" 

     android:background="#C0C0C0" 
     android:layout_height="wrap_content"> 
     <TextView 
      android:id="@+id/textView1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:gravity="center" 
      android:text="Meio" 
      android:layout_toRightOf="@+id/buttonEsq" /> 
    </LinearLayout> 
    <Button 
     android:layout_width="30dip" 
     android:layout_height="30dip" 
     android:id="@+id/slideHandleButton" 
     android:background="@drawable/arrowup">   
    </Button> 
</SlidingDrawer> 
</LinearLayout> 

とのLinearLayout例のXML:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:orientation="horizontal" > 

    <RelativeLayout 
    android:id="@+id/relativeLayout1" 
    android:layout_width="match_parent" 
    android:layout_height="fill_parent"     
    android:orientation="horizontal" 
    android:layout_toLeftOf="@+id/linearLayout3" 
    android:layout_toRightOf="@+id/linearLayout1" 
    android:background="#FFFFFFFF"> 
    <Button 
     android:id="@+id/buttonEsq" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 


     android:text="v--" /> 
    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:gravity="center" 
     android:text="Meio" 
     android:layout_toRightOf="@+id/buttonEsq" /> 

    <Button 
     android:id="@+id/buttonDir" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 

     android:layout_toRightOf="@+id/textView1" 
     android:text="--v" /> 
</RelativeLayout> 
<LinearLayout 
    android:id="@+id/linearLayout1" 
    android:layout_width="50dip" 
    android:layout_height="fill_parent" 
    android:layout_alignParentLeft="true" 


    android:background="#FFFF0000"> 
    <TextView 
     android:id="@+id/textView2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Esquerda" /> 
</LinearLayout> 



<LinearLayout 
    android:id="@+id/linearLayout3" 
    android:layout_width="50dip" 
    android:layout_height="fill_parent" 
    android:layout_alignParentRight="true" 



    android:background="#FFF00000"> 
    <TextView 
     android:id="@+id/textView2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Direita" /> 
</LinearLayout> 

</RelativeLayout> 

アンドロイドコード(コメント部分は、第1の例のコードです) :

public class Main extends Activity { 
Button slideHandleButton; 
Button slideHandleButtonLeft; 
Button slideHandleButtonRight; 
SlidingDrawer slidingDrawer; 

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.mainlayouts); 
/* slideHandleButton = (Button) findViewById(R.id.slideHandleButton); 
    slidingDrawer = (SlidingDrawer) findViewById(R.id.SlidingDrawer); 

    slidingDrawer.setOnDrawerOpenListener(new OnDrawerOpenListener() { 
     @Override 
     public void onDrawerOpened() { 
      slideHandleButton.setBackgroundResource(R.drawable.arrowdown); 
     } 
    }); 

    slidingDrawer.setOnDrawerCloseListener(new OnDrawerCloseListener() { 
     @Override 
     public void onDrawerClosed() { 
      slideHandleButton.setBackgroundResource(R.drawable.arrowup); 
     } 
    });*/ 
    slideHandleButtonLeft = (Button) findViewById(R.id.buttonEsq); 
    slideHandleButtonLeft.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      LinearLayout lll = (LinearLayout) findViewById(R.id.linearLayout1); 
      RelativeLayout.LayoutParams params=new RelativeLayout.LayoutParams(50, LinearLayout.LayoutParams.FILL_PARENT);    
      lll.setLayoutParams(params);    
     } 
    }); 
} 
} 
+0

私はあなたが取ったアプローチのいくつかのコードを投稿したいが、それはうまくいかなかった。それはあなたのためのアプローチを提案するときに他の人に何かを与えることができます – hooked82

+0

完了、助けてくれるように:) – Dporem

+0

[これを試してください](http://androidtrainningcenter.blogspot.in/2013/06/slidingpanelayout-android-making.html ) – Sameer

答えて

1

スライディングドローラーは、右側またはボトルからのみスライドできます右から左にスライドすることはできません。この質問から回答を試すことができます:Android SlidingDrawer from top?またはあなたはソースコードhttp://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/1.5_r4/android/widget/SlidingDrawer.javaを書き直すことができます。

しかし、SlidingDrawerは習慣

白色パネルは、

ホワイトパネルの上をスライドするようにパネル

のいずれかにすることがすべてのコンテンツを表示しない可能にします私が考えることができる唯一の解決策は、一連のスケール/平行移動を使用し、左または右のパネルをオフスクリーンに翻訳し、視界をなくし、同時に中央のパネルを赤色のパネルのいずれの方向にも拡大縮小することです除去ed。

私はこれまでに同様のプロトタイプを作成してこのメ​​ソッドを使用しましたが、onAnimationEndリスナーは機能しませんが、スケールアニメーションはひどく見えました.LinearLayoutを拡張してonAnimationEndをオーバーライドする必要があります働く

+0

最初の文章を確認し、左に2回言います。あなたはおそらく一点で正しいことを意味します。 –

+0

ah ooops、fixed – triggs

+0

"私が考えることができる唯一の解決策は、一連のスケール/平行移動を使用し、左または右のパネルをオフスクリーンに変換し、視界をなくすことです。どの赤色パネルの方向を取り除いているのか」 私はこれを試してうまくいきませんでした...とにかく、私は上司に違うアプローチを提案しています。とにかく、あなたの助けをありがとう、これは難しい話題に答える:) – Dporem

関連する問題