2013-11-03 21 views

回答

3

您可以在庫的ExampleListActivity中找到它。

首先你需要一個List菜單項到一個滑動菜單,你需要一個FrameLayout。

MainActivity.xml(佈局文件夾)

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

之後,創建一個leftlist.xml(左側菜單中的列表)

<?xml version="1.0" encoding="utf-8"?> 
<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" /> 

之後,創建一個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" /> 

而一個row.xml(自定義每行的視圖)

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="50dp" 
android:orientation="horizontal" > 

<TextView 
    android:id="@+id/row_title1" 
    android:layout_width="0dp" 
    android:layout_height="match_parent" 
    android:layout_weight="1" 
    android:padding="10dp" 

</LinearLayout> 

然後有一個SampleListFragment.java(寫列表的名稱)

public class SampleListFragment extends ListFragment { 

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    return inflater.inflate(R.layout.leftlist, null); 
} 

public void onActivityCreated(Bundle savedInstanceState) { 
super.onActivityCreated(savedInstanceState); 
    SampleAdapter adapter = new SampleAdapter(getActivity()); 
    adapter.add(new SampleItem("menu left A")); 
    adapter.add(new SampleItem("menu left B")); 
    adapter.add(new SampleItem("menu left C")); 
    adapter.add(new SampleItem("menu left D")); 
    adapter.add(new SampleItem("menu left A")); 
    setListAdapter(adapter); 

} 

private class SampleItem { 
    public String tag; 
    public int iconRes; 
    public SampleItem(String tag, int iconRes) { 
     this.tag = tag; 
     this.iconRes = iconRes; 
    } 
} 

public class SampleAdapter extends ArrayAdapter<SampleItem> { 

    public SampleAdapter(Context context) { 
     super(context, 0); 
    } 

    public View getView(int position, View convertView, ViewGroup parent) { 
     if (convertView == null) { 
      convertView = LayoutInflater.from(getContext()).inflate(R.layout.row, null); 
     } 
     ImageView icon = (ImageView) convertView.findViewById(R.id.row_icon); 
     icon.setImageResource(getItem(position).iconRes); 
     TextView title = (TextView) convertView.findViewById(R.id.row_title); 
     title.setText(getItem(position).tag); 

     return convertView; 
    } 

} 
    } 

您將需要一個baseactivity顯示滑動/操作欄 BaseActivity.java的影響(配置你如何滑動菜單效果)

public class BaseActivity extends SlidingFragmentActivity { 
SlidingMenu menu; 
private int mTitleRes; 
protected ListFragment mFrag; 

public BaseActivity(int titleRes) { 
    mTitleRes = titleRes; 
} 

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

    setTitle(mTitleRes); 

    // set the Behind View 
    setBehindContentView(R.layout.menu_frame); 
    if (savedInstanceState == null) { 
     FragmentTransaction t = this.getSupportFragmentManager().beginTransaction(); 
     mFrag = new SampleListFragment(); 
     t.replace(R.id.menu_frame, mFrag); 
     t.commit(); 
    } else { 
     mFrag = (ListFragment)this.getSupportFragmentManager().findFragmentById(R.id.menu_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); 



} 


    } 

然後在您的MainActivity.java延伸baseactivity(只需撥打你的OnCreate左側菜單)

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

      getSlidingMenu().setMode(SlidingMenu.LEFT); 
    getSlidingMenu().setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN); 

    getSupportFragmentManager() 
    .beginTransaction() 
    .replace(R.id.menu_frame, new SampleListFragment()) 
    .commit(); 
    } 

這就是我如何爲我的應用程序做的我不知道這是對還是錯的方法,但隨時問你是否有任何問題。當然,您必須將res/drawable文件夾中的shadow.xml和shadowright.xml複製到您的應用程序

+0

很多,如果可能的話,你可以解釋如何添加一個動作到listView? – Signo

相關問題