DrawerLayout顧名思義就是一個管理布局的。使用方式可以與其它的布局類類似。
DrawerLayout帶有滑動的功能。只要按照drawerLayout的規定布局方式寫完布局,就能有側滑的效果。
直接將DrawerLayout作為根布局,然后其內部
第一個View為內容區域
第二個View為左側菜單
第三個View為右側側滑菜單
當前第三個是可選的。
使用的包如下:
import android.support.v4.widget.DrawerLayout;
使用這些包的時候有時有的會報錯。這時候確保android.support.v4是不是最新的版本。
可以更新一下support包,文件存放在sdk/extres/support中。
然后可以通過eclipse>project right click>Android Tools>Add Support library…
或者可以直接把文件復制到Project中libs文件夾中。
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent"> <FrameLayout android:id="@+id/content_frame" android:layout_width="match_parent" android:layout_height="match_parent" /> <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>
Drawer positioning and layout is controlled using the android:layout_gravity attribute on child views corresponding to which side of the view you want the drawer to emerge from: left or right.
(Or start/end on platform versions that support layout direction.)
也就是說
android:layout_gravity="start" 相當于左側的MENU向右滑動即顯示菜單,LEFT/START(RIGHT/END)
那么從布局文件中可知:
FrameLayout是內容區, ListView是左側菜單。
我們需做一個Fragment來裝載內容:
public class PageFragment extends Fragment { public final static String ITEM_POSITION_NUMBER = "item_position_num"; public PageFragment(){} @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View convertView = inflater.inflate(R.layout.page_fragment_layout, null); TextView tv = (TextView) convertView.findViewById(R.id.textView); int num = getArguments().getInt(ITEM_POSITION_NUMBER); //從res/array中獲取list數據 String[] dynastyList = getResources().getStringArray(R.array.list_item); tv.setText(dynastyList[num]); return convertView; } }代碼中可以看出當我們在左側菜單中選擇SelectItem時會把對應的值顯示到內容區。
代碼中的page_fragment_layout.xml僅是FrameLayout內加一個TextView所以就不貼代碼了。
接下來我們需要把listView進行填充數據。
private ListView menuList;private String[] mMenuTitles;private String[] historyTitles;private String[] musicTitles;private String[] movieTitles;private String[] listTitles; // 歷史欄 historyTitles = getResources().getStringArray(R.array.history); // 音樂欄 musicTitles = getResources().getStringArray(R.array.music); // 電影欄 movieTitles = getResources().getStringArray(R.array.movie); // 標題數組 mMenuTitles = getResources().getStringArray(R.array.title); // 每一 主站蜘蛛池模板: 泰和县| 鄂温| 阳高县| 武平县| 曲水县| 朝阳区| 福州市| 禄劝| 怀仁县| 黎川县| 京山县| 色达县| 齐齐哈尔市| 木兰县| 博野县| 新绛县| 监利县| 静乐县| 确山县| 高碑店市| 花莲市| 扶沟县| 合川市| 荔波县| 任丘市| 苏尼特右旗| 株洲县| 海阳市| 无为县| 周口市| 北票市| 河津市| 平塘县| 嘉兴市| 南丰县| 乌鲁木齐县| 邵阳县| 凤山县| 平泉县| 彰化县| 东辽县|