2013-03-06 22 views
6

Stworzyłem przykładową aplikację, aby przetestować działanie menu przesuwanego. Pokazany poniżej zrzut ekranu jest tym, co otrzymuję od teraz. Ale kiedy kliknę przycisk kategorii (pokazany na obrazku poniżej), powinienem otrzymać menu dodatkowe, jak pokazano na zrzucie ekranu z zomato poniżej. Jak mogę to zrobić ? Czy postępuję we właściwy sposób, czy nie?przesuwne menu przy użyciu biblioteki jfeinstein10

enter image description here

enter image description here

mój SlidingFragmentActivity:

@Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     con = this; 
     setSlidingActionBarEnabled(false); 
     setContentView(R.layout.main); 
     sm = getSlidingMenu(); 
     sm.setMode(SlidingMenu.RIGHT); 
     sm.setShadowDrawable(R.drawable.shadowright); 
     sm.setTouchModeAbove(SlidingMenu.TOUCHMODE_NONE); 
     sm.setBehindScrollScale(1.0f); 
     sm.setShadowWidthRes(R.dimen.shadow_width); 
     sm.setBehindOffsetRes(R.dimen.slidingmenu_offset); 
     sm.setFadeDegree(0.5f); 
     //sm.setSecondaryMenu(R.layout.properties); 
     //sm.setSecondaryShadowDrawable(R.drawable.shadow); 
     setTitle("Sliding Bar"); 

     // set the Behind View 
     setBehindContentView(R.layout.menu_frame); 
     FragmentTransaction t = this.getSupportFragmentManager() 
       .beginTransaction(); 
     mFrag = new SampleListFragment(); 
     t.replace(R.id.menu_frame, mFrag); 
     t.commit(); 
    } 

mój SampleListFragment:

public class SampleListFragment extends SherlockFragment { 
    private static final String[] Radio_buttons = new String[] { "Distance", 
      "Rating" }; 

    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 
     View view = inflater.inflate(R.layout.list, container, false); 
     ListView radio_list = (ListView) view.findViewById(R.id.RadioList); 
     Button categories = (Button) view.findViewById(R.id.sampleButton); 
     radio_list 
       .setAdapter(new ArrayAdapter<String>(MainActivity.con, 
         android.R.layout.simple_list_item_single_choice, 
         Radio_buttons)); 

     radio_list.setItemsCanFocus(true); 
     radio_list.setChoiceMode(ListView.CHOICE_MODE_SINGLE); 
     categories.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       MainActivity.sm.showSecondaryMenu(); 
      } 
     }); 
     return view; 
    } 
} 

main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context=".MainActivity" > 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerHorizontal="true" 
     android:layout_centerVertical="true" 
     android:text="Sliding menu demo...!!!" /> 

</RelativeLayout> 

menu_frame.xml

<?xml version="1.0" encoding="utf-8"?> 
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/menu_frame" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" /> 

list.xml

<?xml version="1.0" encoding="utf-8"?> 
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/scroller" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:fillViewport="true" > 

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" > 

     <LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" > 

      <TextView 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:background="#ffffff" 
       android:paddingLeft="10dp" 
       android:text="SEARCH" 
       android:textColor="#FF3300" 
       android:textSize="20dp" > 
      </TextView> 
     </LinearLayout> 

     <RelativeLayout 
      android:id="@+id/searchTextLayout" 
      android:layout_width="match_parent" 
      android:layout_height="50dip" 
      android:layout_marginBottom="20dip" 
      android:layout_marginLeft="20dip" 
      android:layout_marginRight="20dip" 
      android:layout_marginTop="20dip" > 

      <ImageButton 
       android:id="@+id/searchTextButton" 
       android:layout_width="wrap_content" 
       android:layout_height="match_parent" 
       android:layout_alignParentLeft="true" 
       android:background="#685E5C" 
       android:scaleType="fitCenter" 
       android:src="@drawable/abs__ic_search" /> 

      <EditText 
       android:id="@+id/searchText" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:layout_toRightOf="@id/searchTextButton" 
       android:background="@drawable/background_black_border_full" 
       android:padding="8dp" 
       android:textColor="@android:color/white" /> 
     </RelativeLayout> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" > 

      <TextView 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:background="#ffffff" 
       android:paddingLeft="10dp" 
       android:text="SORT BY" 
       android:textColor="#FF3300" 
       android:textSize="20dp" > 
      </TextView> 
     </LinearLayout> 

     <RelativeLayout 
      android:layout_width="match_parent" 
      android:layout_height="134dp" > 

      <ListView 
       android:id="@+id/RadioList" 
       android:layout_width="match_parent" 
       android:layout_height="fill_parent" > 
      </ListView> 
     </RelativeLayout> 

     <Button 
      android:id="@+id/sampleButton" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="Categories" /> 

    </LinearLayout> 

</ScrollView> 
+0

Co chcesz pokazać? Prawe menu? – Ahmad

+0

@Ahmad ya prawe menu. zobacz pierwszy zrzut ekranu powyżej, kiedy kliknę przycisk "categories" tam, powinienem dostać nowe menu przesuwne na górze, jak pokazano na drugim zrzucie ekranu (aplikacja z pomidorami). –

Odpowiedz

3

SlidingMenu NIE to zrobić, zomato wykorzystuje implementację niestandardową.

SlidingMenu pozwoli masz menu na lewo i prawo, ale nie dwa po obu stronach.

Spoglądałbym na użycie pager widoku lub niestandardową implementację. Albo nie wiem nic z pudełka, żeby to zrobić. Mogę być wart inspiracji pod adresem Android Views.

3

Trochę za późno, ale nadal pozwól mi opublikować moją odpowiedź na wypadek, gdyby pomógł komuś w przyszłości. Jeśli chcesz pokazać innym menu można użyć

setMode(SlidingMenu.LEFT_RIGHT); 
setSecondaryMenu(R.layout.yourSecondMenu); 

i kliknij w przycisk

showSecondaryMenu(true); 

i wykonywać swoje działania w tej klasie.

Powiązane problemy