android标题栏详细讲解(1,2)
来源:互联网 发布:工业视觉软件 编辑:程序博客网 时间:2024/05/21 02:53
什么是ActionBar?
ActionBar或者ToolBar都是一个标题导航栏。ActionBar是android3.0之后出现的一个组件,用于方便快捷的修改标题导航栏的样式。ActionBar的组成
如图所示。一,第一部分
1表示
1.up button和icon的显示和使用
1、基本使用
2、监听方法
up button:用于回到上一层。
back button: 用于返回到上一个浏览历史界面。
public class MainActivity extends Activity {private ActionBar mActionBar;@SuppressLint("NewApi")@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mActionBar=getActionBar();//setDisplayHomeAsUpEnabled是让标题栏有upbtn显示出来。(也就是必须有它才会有upbtn)mActionBar.setDisplayHomeAsUpEnabled(true);//相当于开关,true-->upbtn显示出来,false-->upbtn隐藏起来mActionBar.setDisplayShowHomeEnabled(true);//默认会显示图标机器人图标mActionBar.setLogo(R.drawable.more_activity);//mActionBar.setLogo(R.drawable.ic_launcher);
<span style="white-space:pre"></span>//也是显示图片效果//mActionBar.setIcon(R.drawable.ic_launcher);//取消upbtn 的标题mActionBar.setTitle("");}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {switch (item.getItemId()) {case android.R.id.home:Toast.makeText(MainActivity.this, "点击upbuttn", Toast.LENGTH_SHORT).show();break;}return true;}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}}
2、View control的使用(视图控制区)1、列表模式supportActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);supportActionBar.setListNavigationCallbacks();
布局就是ListView,省略了哈。public class MainActivity extends Activity {private ActionBar mSupportActionBar;private ListView mListView;private ArrayAdapter<String> mAdapter;private List<String> datas = new ArrayList<String>();private List<String> listDatas = new ArrayList<String>();private ArrayAdapter<String> mListAdapter;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initActionBarViewControl();//viewControlinitView();//listView}private void initView() {mListView = (ListView) findViewById(R.id.view_control_list_lv);mListAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, listDatas);mListView.setAdapter(mListAdapter);//绑定适配器}private void initActionBarViewControl() {// 获取actionBar对象mSupportActionBar = getActionBar();setTitle("");// 指定View Control显示模式// 列表模式。类似一个SpinnermSupportActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);loadDatas();// 创建适配器mAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, datas);// 设置(callback)适配器并关联mSupportActionBar.setListNavigationCallbacks(mAdapter,new OnNavigationListener() {@Overridepublic boolean onNavigationItemSelected(int itemPosition,long itemId) {if (itemPosition == 0) {return true;}Toast.makeText(MainActivity.this, "点击" + itemPosition,Toast.LENGTH_SHORT).show();listDatas.clear();for (int i = 0; i < 10; i++) {listDatas.add("咪咪" + itemPosition);}mListAdapter.notifyDataSetChanged();//设置变量见名字知道意思return true;//返回true}});}private void loadDatas() {datas.add("历史记录");for (int i = 0; i < 10; i++) {datas.add("View Control " + i);}}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}}
2、Tab书签模式(案例:Tab+ViewPager)supportActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);supportActionBar.addTab(supportActionBar.newTab().setText("").setIcon().setTabListener());
public class MainActivity extends AppCompatActivity implements ActionBar.TabListener{ private static final String TAG = "androidxx"; private ActionBar mSupportActionBar; private ViewPager mViewPager; private MyPagerAdapter myPagerAdapter; private boolean isUserControlTab; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); initActionTab(); } private void initView() { mViewPager = (ViewPager) findViewById(R.id.tab_view_pager); myPagerAdapter = new MyPagerAdapter(getSupportFragmentManager()); mViewPager.setAdapter(myPagerAdapter); mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { if (isUserControlTab) { return; } Log.d(TAG, "onPageSelected: "); mSupportActionBar.setSelectedNavigationItem(position); Toast.makeText(MainActivity.this, "ViewPager", Toast.LENGTH_SHORT).show(); } @Override public void onPageScrollStateChanged(int state) { } }); } private void initActionTab() { //获取ActionBar mSupportActionBar = getSupportActionBar(); //设置ViewControl的模式 mSupportActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); //显示Tab mSupportActionBar.addTab(mSupportActionBar.newTab().setText("标题1").setIcon(R.mipmap.ic_launcher).setTabListener(this)); mSupportActionBar.addTab(mSupportActionBar.newTab().setText("标题2").setIcon(R.mipmap.ic_launcher).setTabListener(this)); mSupportActionBar.addTab(mSupportActionBar.newTab().setText("标题3").setIcon(R.mipmap.ic_launcher).setTabListener(this)); mSupportActionBar.addTab(mSupportActionBar.newTab().setText("标题4").setIcon(R.mipmap.ic_launcher).setTabListener(this)); mSupportActionBar.addTab(mSupportActionBar.newTab().setText("标题5").setIcon(R.mipmap.ic_launcher).setTabListener(this)); } /** * Tab被选中 * @param tab * @param ft */ @Override public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) { int position = tab.getPosition(); mViewPager.setCurrentItem(position); Toast.makeText(MainActivity.this, "Tab:" + position, Toast.LENGTH_SHORT).show(); } /** * 没有被选 * @param tab * @param ft */ @Override public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction ft) { } /** * 重新被选 * @param tab * @param ft */ @Override public void onTabReselected(ActionBar.Tab tab, FragmentTransaction ft) { } class MyPagerAdapter extends FragmentPagerAdapter { public MyPagerAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { return MyFragment.newInstance(); } @Override public int getCount() { return 5; } }}
public class MyFragment extends Fragment { private Context mContext; static MyFragment newInstance() { MyFragment myFragment = new MyFragment(); return myFragment; } @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); mContext = getContext(); } @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { TextView textView = new TextView(mContext); textView.setText("这是Fragment"); return textView; }}
1、列表模式
supportActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
supportActionBar.setListNavigationCallbacks();
布局就是ListView,省略了哈。
public class MainActivity extends Activity {private ActionBar mSupportActionBar;private ListView mListView;private ArrayAdapter<String> mAdapter;private List<String> datas = new ArrayList<String>();private List<String> listDatas = new ArrayList<String>();private ArrayAdapter<String> mListAdapter;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initActionBarViewControl();//viewControlinitView();//listView}private void initView() {mListView = (ListView) findViewById(R.id.view_control_list_lv);mListAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, listDatas);mListView.setAdapter(mListAdapter);//绑定适配器}private void initActionBarViewControl() {// 获取actionBar对象mSupportActionBar = getActionBar();setTitle("");// 指定View Control显示模式// 列表模式。类似一个SpinnermSupportActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);loadDatas();// 创建适配器mAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, datas);// 设置(callback)适配器并关联mSupportActionBar.setListNavigationCallbacks(mAdapter,new OnNavigationListener() {@Overridepublic boolean onNavigationItemSelected(int itemPosition,long itemId) {if (itemPosition == 0) {return true;}Toast.makeText(MainActivity.this, "点击" + itemPosition,Toast.LENGTH_SHORT).show();listDatas.clear();for (int i = 0; i < 10; i++) {listDatas.add("咪咪" + itemPosition);}mListAdapter.notifyDataSetChanged();//设置变量见名字知道意思return true;//返回true}});}private void loadDatas() {datas.add("历史记录");for (int i = 0; i < 10; i++) {datas.add("View Control " + i);}}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}}
2、Tab书签模式(案例:Tab+ViewPager)
supportActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
supportActionBar.addTab(supportActionBar.newTab().setText("").setIcon().setTabListener());
public class MainActivity extends AppCompatActivity implements ActionBar.TabListener{ private static final String TAG = "androidxx"; private ActionBar mSupportActionBar; private ViewPager mViewPager; private MyPagerAdapter myPagerAdapter; private boolean isUserControlTab; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); initActionTab(); } private void initView() { mViewPager = (ViewPager) findViewById(R.id.tab_view_pager); myPagerAdapter = new MyPagerAdapter(getSupportFragmentManager()); mViewPager.setAdapter(myPagerAdapter); mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { if (isUserControlTab) { return; } Log.d(TAG, "onPageSelected: "); mSupportActionBar.setSelectedNavigationItem(position); Toast.makeText(MainActivity.this, "ViewPager", Toast.LENGTH_SHORT).show(); } @Override public void onPageScrollStateChanged(int state) { } }); } private void initActionTab() { //获取ActionBar mSupportActionBar = getSupportActionBar(); //设置ViewControl的模式 mSupportActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); //显示Tab mSupportActionBar.addTab(mSupportActionBar.newTab().setText("标题1").setIcon(R.mipmap.ic_launcher).setTabListener(this)); mSupportActionBar.addTab(mSupportActionBar.newTab().setText("标题2").setIcon(R.mipmap.ic_launcher).setTabListener(this)); mSupportActionBar.addTab(mSupportActionBar.newTab().setText("标题3").setIcon(R.mipmap.ic_launcher).setTabListener(this)); mSupportActionBar.addTab(mSupportActionBar.newTab().setText("标题4").setIcon(R.mipmap.ic_launcher).setTabListener(this)); mSupportActionBar.addTab(mSupportActionBar.newTab().setText("标题5").setIcon(R.mipmap.ic_launcher).setTabListener(this)); } /** * Tab被选中 * @param tab * @param ft */ @Override public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) { int position = tab.getPosition(); mViewPager.setCurrentItem(position); Toast.makeText(MainActivity.this, "Tab:" + position, Toast.LENGTH_SHORT).show(); } /** * 没有被选 * @param tab * @param ft */ @Override public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction ft) { } /** * 重新被选 * @param tab * @param ft */ @Override public void onTabReselected(ActionBar.Tab tab, FragmentTransaction ft) { } class MyPagerAdapter extends FragmentPagerAdapter { public MyPagerAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { return MyFragment.newInstance(); } @Override public int getCount() { return 5; } }}
public class MyFragment extends Fragment { private Context mContext; static MyFragment newInstance() { MyFragment myFragment = new MyFragment(); return myFragment; } @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); mContext = getContext(); } @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { TextView textView = new TextView(mContext); textView.setText("这是Fragment"); return textView; }}
back button: 用于返回到上一个浏览历史界面。
代码
1、up button和icon的显示和使用
1、基本使用
2、监听方法
up button:用于回到上一层。
back button: 用于返回到上一个浏览历史界面。
2、View control的使用(视图控制区)
1、列表模式supportActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);supportActionBar.setListNavigationCallbacks();
2、Tab书签模式(案例:Tab+ViewPager)supportActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);supportActionBar.addTab(supportActionBar.newTab().setText("").setIcon().setTabListener());
0 0
- android标题栏详细讲解(1,2)
- Android自定义标题栏详细教程
- Android自定义View-TitleBar(标题栏)详细说明
- Android中Notification详细讲解(一)
- android BLE蓝牙详细讲解(一)
- android ViewTreeObserver详细讲解
- android ViewTreeObserver详细讲解
- android task详细讲解
- android ViewTreeObserver详细讲解
- android ViewTreeObserver详细讲解
- android ViewTreeObserver详细讲解
- android actionBar详细讲解
- Android--Dialog详细讲解
- Android--Dialog详细讲解
- Android--Dialog详细讲解
- Android--Dialog详细讲解
- Android--Dialog详细讲解
- Android--Dialog详细讲解
- 解决方案-支持各种屏幕密度
- CopyOnWriteArrayList与Collections.synchronizedList的性能对比
- Shallow and Deep Convolutional Networks for Saliency Prediction
- iOS开发:相对路径与相对工程名
- 做SEO的我们是必要先了解看搜索引擎的工作原里
- android标题栏详细讲解(1,2)
- Linux IPC之Socket网络编程基础篇
- PHP中遍历数组元素的几种方法
- Java关键字final、static使用总结
- SQL数据库备份恢复助手 V2.7.6 官方免费版
- Eclipse下启动tomcat报错:The archive: C:/Program Files(x86)/Java/jdk1.7.0_10/lib/tools.jar which is refere
- dubbo配置hessian+dubbo协议共存
- Android5.0+(CoordinatorLayout)
- shell编程中特殊变量的含义(位置变量)