標籤:
首先, DrawerLayout這個類是在Support Library裡的,需要加上android-support-v4.jar這個包。 然後程式中用時在前面匯入import android.support.v4.widget.DrawerLayout; 如果找不到這個類,首先用SDK Manager更新一下Android Support Library,然後在Android SDK/extras/android/support/v4
路徑下找到android-support-v4.jar,複製到項目的libs路徑,將其Add to Build Path.
http://developer.android.com/reference/android/support/v4/widget/DrawerLayout.html
開啟抽屜: DrawerLayout .openDrawer(); 關閉抽屜:DrawerLayout.closeDrawer( );
要注意這幾個原則:
1.主view(content view) 必須是drawerlayout的第一個子節點
2.主view寬和高必需match_parent
3.drawer view必須指定android:layout_gravity屬性,如果值為“start”,會根據系統的語言順序自動決定從左滑還是從右
滑
4. drawer view寬度不能太寬,最好不要超過320dp
<android.support.v4.widget.DrawerLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/drawer_layout"android:layout_width="match_parent"android:layout_height="match_parent"> <!-- The main content view --> <FrameLayout android:id="@+id/content_frame" android:layout_width="match_parent" android:layout_height="match_parent" > <TextView android:text="@string/hello_world" android:layout_width="wrap_content" android:id="@+id/textView1" android:layout_height="wrap_content" /> </FrameLayout> <!-- The navigation drawer --> <ListView android:id="@+id/left_drawer" android:layout_width="240dp" android:layout_height="match_parent" android:layout_gravity="start" android:choiceMode="singleChoice" android:divider="@android:color/transparent" android:dividerHeight="0dp" android:background="#111"/></android.support.v4.widget.DrawerLayout>
public class MainActivity extends ActionBarActivity implements ResponseListener<String> { private TextView mTextView; private ListView mListView; private DrawerLayout mDrawerLayout; private ActionBarDrawerToggle mDrawerToggle; private ArrayList<String> list=new ArrayList<String>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); list.add("test1"); list.add("test2"); list.add("test3"); list.add("test4"); list.add("test5"); mListView=(ListView)findViewById(R.id.left_drawer); mListView.setAdapter(new ArrayAdapter<String>(this, R.layout.list_item, list)); mTextView=(TextView)findViewById(R.id.textView1); mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { mTextView.setText(list.get(position)); mDrawerLayout.closeDrawer(mListView); // mDrawerLayout.openDrawer(mListView); } }); }}
Android DrawerLayout實現左右側滑