本帖最后由 xiao_ming 于 2016-1-15 17:33 编辑
第Ⅱ期Android菜鸟饭团#Android学习#第十七课 活动笔记 导航抽屉式一个显示应用程序的主要导航选项的面板,它显示在屏幕的左边。在大部分时间内它是隐藏状态的,当用户用一直手指从屏幕的左边缘滑动时,导航抽屉就会显示出来。或者在栈顶的应用程序,用户在操作栏触摸应用程序的图标时,它也会显示出来。 在你决定在你的应用程序中使用一个导航抽屉前,你应该了解在Navigation Drawer 设计指导中的使用案例和设计规则。 1.创建一个抽屉布局 添加一个导航抽屉,你需要将你的用户界面用一个DrawerLayout 对象作为你布局文件的根视图。DrawerLayout添加一个包含主要文本的视图,该文本视图为在屏幕中主要去显示文本内容。在抽屉隐藏时,该视图也是你的主要布局。另外一个视图包含了导航抽屉里的内容视图 <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"> <!-- The main content view --> <FrameLayout android:id="@+id/content_frame" android:layout_width="match_parent" android:layout_height="match_parent" /> <!-- 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> |
上面的布局示范了一些重要的布局特征 在DrawerLayout中,主文本视图必须是第一个字视图。因为xml的执行顺序意味着Z轴和抽屉必须在文本的顶部。 主文本视图的宽高设置为匹配父窗体。因为在抽屉处于隐藏状态下进入UI界面时作为主要的视图。 抽屉视图必须制定是水平方向的listView。制定start代替left 抽屉视图制定的宽是按dp为代码计算高匹配父窗体。抽屉的宽应该不超过320dp一边用户可以一直看到主文本的一部分. 2.在你的活动(activity)中,第一件事情应该是初始化这个导航抽屉的列表项。如何去实现取决于你的应用程序的内容。但是一个导航抽屉通常由一个listView构成,所以如果你使用listView的话应该给它填充一个适配器 public class MainActivity extends Activity { private String[] mPlanetTitles; private DrawerLayout mDrawerLayout; private ListView mDrawerList; ... @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mPlanetTitles = getResources().getStringArray(R.array.planets_array); mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); mDrawerList = (ListView) findViewById(R.id.left_drawer); // Set the adapter for the list view mDrawerList.setAdapter(new ArrayAdapter<String>(this, R.layout.drawer_list_item, mPlanetTitles)); // Set the list's click listener mDrawerList.setOnItemClickListener(new DrawerItemClickListener()); ... } } |
每一个技术小白都有一个成为大神的梦想,现在Android菜鸟饭团就给你这个成就梦想的机会。我们提供最新的Android技术教学,只要你又耐心和毅力就一定会在这里有所收获。 Android菜鸟饭团由南阳GDG组织发起,秉承着开放、分享、创新的原则,希望通过GDG社区的力量能够给更多的想要学习Android开发技术的小白们创造一个学习,交流,分享的环境。同往常的GDG活动一样,我们依然是任性的一个子都不要,并且还在周六的分享中提供盒饭和不定期的惊喜小礼物呦~所以快来加入我们吧,为你的大神梦想迈出第一步。
|