2013-08-08 2 views
1

Я хочу создать Evernote, как скользящее меню для моего Android-приложения, которое включает Gridview и Listview содержимого в раздвижном меню.Android Evernote like slideMenu

Evernote For Android Showing sliding menu

Я реализовал два frameLayouts в файле макета slidingMenu, один для Gridview и другой для Listview. Вот xml-файл.

menu_frame.xml

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


    <FrameLayout 
    android:id="@+id/grid_frame" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" /> 

    <FrameLayout 
    android:id="@+id/menu_frame" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_below="@+id/grid_frame"/> 
</RelativeLayout> 

Просмотр списка Framelayout XML-файл для идентификатора: menu_frame

<ListView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@android:id/list" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingLeft="@dimen/list_padding" 
    android:paddingRight="@dimen/list_padding" /> 

Gridview Framelayout XML-файл для идентификатора: grid_frame

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingLeft="@dimen/list_padding" 
    android:paddingRight="@dimen/list_padding"> 
    <!-- android:id="@+id/grid_list" --> 

    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" 
     android:layout_marginLeft="51dp" 
     android:layout_marginTop="81dp" 
     android:text="Grid Layout" 
     android:textAppearance="?android:attr/textAppearanceLarge" /> 

</RelativeLayout> 

И Finaly здесь ява код скользящего населения: SlideMenuBaseActivity.java

public class SlideMenuBaseActivity extends SlidingFragmentActivity{ 

    private int mTitleRes; 
    protected SherlockListFragment mFrag; 

    protected SherlockFragment mFragGrid; 

    public SlideMenuBaseActivity(int titleRes) { 
     // TODO Auto-generated constructor stub 
     mTitleRes = titleRes; 
    } 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 

     setTitle(mTitleRes); 

     setBehindContentView(R.layout.menu_frame); 
     if (savedInstanceState == null) { 
      FragmentTransaction t = this.getSupportFragmentManager().beginTransaction(); 
      mFrag = new SlidingMenuFragment(); 
      mFragGrid = new SlidingGridFragment(); 

      FragmentTransaction t2 = this.getSupportFragmentManager().beginTransaction(); 
      t2.replace(R.id.grid_frame, mFragGrid); 
      t2.commit(); 
      t.replace(R.id.menu_frame, mFrag); 
      //t.replace(R.id.grid_frame, mFragGrid); 
      t.commit(); 
     } else { 
      mFrag = (SherlockListFragment)this.getSupportFragmentManager().findFragmentById(R.id.menu_frame); 
      mFragGrid = (SherlockFragment)this.getSupportFragmentManager().findFragmentById(R.id.grid_frame); 
     } 

     // customize the SlidingMenu 
       SlidingMenu sm = getSlidingMenu(); 
       sm.setShadowWidthRes(R.dimen.shadow_width); 
       sm.setShadowDrawable(R.drawable.shadow); 
       sm.setBehindOffsetRes(R.dimen.slidingmenu_offset); 
       sm.setFadeDegree(0.35f); 
       sm.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN); 

       getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
       getSupportActionBar().setDisplayShowCustomEnabled(true); 
       getSupportActionBar().setHomeButtonEnabled(true); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // TODO Auto-generated method stub 
     return super.onCreateOptionsMenu(menu); 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     // TODO Auto-generated method stub 
     switch (item.getItemId()) { 
     case android.R.id.home: 
      toggle(); 
      return true; 

     default: 
      break; 
     } 
     return super.onOptionsItemSelected(item); 
    } 

} 

Я реализовал код, как описано выше, но только grid_view содержание видна на slidingMenu но не List_view содержание. Может ли один пожалуйста, предложите мне решение, чтобы получить полное представление, как Evernote меню с помощью фрагментов для моего приложения скольжения .....

Благодаря

ответ

0

Может быть, вам следует использовать панель навигации вместо раздвижного меню. Легче достичь своей цели.

Простая проверка этих ссылок:

Create Navigation Drawer and See Example

Information

Это простой в использовании, и, как вы хотите с фрагментами. Вы можете легко сделать индивидуальный дизайн для левого ящика. Для меня это похоже, что Evernote использует тот же шаблон.

+1

Я использовал навигационный ящик, но это очень сложно, чем скользящая библиотека меню. – Seenu69