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;    }}










      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
原创粉丝点击