185.m1-DrawerLayout的应用
来源:互联网 发布:哪里购买域名续费便 编辑:程序博客网 时间:2024/05/21 22:39
首先布局文件activity_main.xml布局是由android.support.v4.widget.DrawerLayout开始,然后里面一个线性布局一个FrameLayout
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" android:id="@+id/dl"><LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="asd" /></LinearLayout><!-- 抽屉 --> <FrameLayout android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/bg_tab" android:layout_gravity="left"> </FrameLayout></android.support.v4.widget.DrawerLayout>
逻辑代码MainActivity.java实现了滑动的抽屉效果,同时实现了Home图标的点击的抽屉效果
点击的抽屉效果的时候需要让图标显示,同时作为按钮可见
/让拉出显示详情的图片显示,可以拉出详情actionBar.setDisplayHomeAsUpEnabled(true);//让按键点击有效actionBar.setHomeButtonEnabled(true);
需要让ActionBar和开关建立关系
// 让开关和actionbar建立关系 drawerToggle.syncState();
同时由于ActionBar也会处理点击事件,因此需要在ActionBar将点击事件抛出之前处理图标的点击事件
//优先处理drawerToggle的点击,drawerToggle出不不了交给父类return drawerToggle.onOptionsItemSelected(item)|super.onOptionsItemSelected(item);
全部代码如下
package com.ldw.market;import junit.framework.AssertionFailedError;import android.annotation.SuppressLint;import android.content.Intent;import android.os.Bundle;import android.support.v4.app.ActionBarDrawerToggle;import android.support.v4.app.FragmentTransaction;import android.support.v4.view.PagerTabStrip;import android.support.v4.view.ViewPager;import android.support.v4.widget.DrawerLayout;import android.support.v7.app.ActionBar;import android.support.v7.app.ActionBar.Tab;import android.support.v7.app.ActionBar.TabListener;import android.support.v7.app.ActionBarActivity;import android.support.v7.widget.SearchView;import android.support.v7.widget.SearchView.OnQueryTextListener;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.Toast;public class MainActivity extends ActionBarActivity implements OnQueryTextListener{private DrawerLayout mDrawerLayout;private ActionBarDrawerToggle drawerToggle;private ViewPager mViewPager;private PagerTabStrip pager_tab_strip;private String[] tab_names; // 标签的名字 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //添加tab标签名 ActionBar actionBar = getSupportActionBar();actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);Tab tab1=actionBar.newTab().setText("标签一").setTabListener(new MyTabListener());actionBar.addTab(tab1);Tab tab2=actionBar.newTab().setText("标签2").setTabListener(new MyTabListener());actionBar.addTab(tab2);Tab tab3=actionBar.newTab().setText("标签3").setTabListener(new MyTabListener());actionBar.addTab(tab3);Tab tab4=actionBar.newTab().setText("标签4").setTabListener(new MyTabListener());actionBar.addTab(tab4);//让拉出显示详情的图片显示,可以拉出详情actionBar.setDisplayHomeAsUpEnabled(true);//让按键点击有效actionBar.setHomeButtonEnabled(true);mDrawerLayout = (DrawerLayout) findViewById(R.id.dl);//ActionBarDrawerToggle是ActionBar控制抽屉,//参数1:当前actionBar的Activity,参数2:控制的抽屉,参数3:按钮的图片,参数4和5是描述drawerToggle = new ActionBarDrawerToggle(this,mDrawerLayout, R.drawable.ic_drawer_am, R.string.open_drawer,R.string.close_drawer){@Overridepublic void onDrawerClosed(View drawerView) {super.onDrawerClosed(drawerView);Toast.makeText(getApplicationContext(), "抽屉关闭了", 0).show();}@Overridepublic void onDrawerOpened(View drawerView) {super.onDrawerOpened(drawerView);Toast.makeText(getApplicationContext(), "抽屉打开了", 0).show();}};//设置监听DrawerListenermDrawerLayout.setDrawerListener(drawerToggle);// 让开关和actionbar建立关系 drawerToggle.syncState(); } private class MyTabListener implements TabListener{@Overridepublic void onTabReselected(Tab arg0, FragmentTransaction arg1) {// TODO Auto-generated method stub}@Overridepublic void onTabSelected(Tab arg0, FragmentTransaction arg1) {// TODO Auto-generated method stub}@Overridepublic void onTabUnselected(Tab arg0, FragmentTransaction arg1) {// TODO Auto-generated method stub} } //初始化ActionBar的界面 @SuppressLint("NewApi") @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); // 如果运行的环境 (部署到什么版本的手机 )大于3.0,低版本的不支持 if (android.os.Build.VERSION.SDK_INT > 11) { SearchView searchView = (SearchView) menu.findItem(R.id.action_search).getActionView();searchView.setOnQueryTextListener(this);// 搜索的监听 } return true; } public void click(View v){ Intent intent = new Intent(getApplicationContext(), DetailActivity.class); startActivity(intent); } /** 处理actionBar菜单条目的点击事件 */ @Overridepublic boolean onOptionsItemSelected(MenuItem item) {System.out.println("所有");//当前点击的条目是searchif (item.getItemId() == R.id.action_search) {Toast.makeText(getApplicationContext(), "搜索", 0).show();}//优先处理drawerToggle的点击,drawerToggle出不不了交给父类return drawerToggle.onOptionsItemSelected(item)|super.onOptionsItemSelected(item);}// 当搜索提交的时候@Overridepublic boolean onQueryTextChange(String arg0) {Toast.makeText(getApplicationContext(), arg0, 0).show();return false;}// 当搜索的文本发生变化@Overridepublic boolean onQueryTextSubmit(String arg0) {Toast.makeText(getApplicationContext(), arg0, 0).show();return false;} }
阅读全文
0 0
- 185.m1-DrawerLayout的应用
- Drawerlayout的应用
- 184.m1-DrawerLayout实现抽屉拉动效果
- M1卡应用总结
- Android Material风格的应用(三)--DrawerLayout
- Android DrawerLayout简单应用
- m1
- m1
- m1
- M1
- M1
- m1
- 安卓RecyclerView与DrawerLayout的简单应用
- 211.m1-应用详情页解析
- M1卡的工作原理
- M1卡的工作原理
- 199.m1-ListView的优化
- 208.m1-ViewPager的优化
- [FFT] [矩阵快速幂] [POJ3150] Cellular Automaton
- rpy2 的安装
- Boston Key Party CTF 2017: prudentialv2-50
- sqlserver2008 R2数据库-不允许表修改保存,阻止保存要求重新创建表的更改
- 2017年第0届浙江工业大学之江学院程序设计竞赛决赛 D: qwb与神奇的序列 [矩阵]【数学】
- 185.m1-DrawerLayout的应用
- ps 学习总结-卸载不了
- [FFT] [矩阵快速幂] [HDU4914] Linear recursive sequence
- 2017年第0届浙江工业大学之江学院程序设计竞赛决赛 E: qwb和李主席 [折半枚举二分]【思维?套路!】
- Java冒泡排序法和选择排序法
- 2017年第0届浙江工业大学之江学院程序设计竞赛决赛 F: qwb has a lot of Coins [nim]【博弈】
- rpy2 使用中注意的问题
- Java研发学习之路小回顾
- 2017年第0届浙江工业大学之江学院程序设计竞赛决赛 G: qwb去面试 [找规律]【思维】