精华内容
下载资源
问答
  • ActionBar

    2019-09-24 11:07:14
    我对ActionBar的简单总结 一、 功能: 1、显示选项菜单的菜单项 2、使用程序图标作为返回Home主屏或向上的导航操作 3、提供交互是View作为Action View 4、提供Tab的导航方式,可用于切换多个Fragment 5、...

    我对ActionBar的简单总结

    一、

    功能:

    1、显示选项菜单的菜单项

    2、使用程序图标作为返回Home主屏或向上的导航操作

    3、提供交互是View作为Action View

    4、提供Tab的导航方式,可用于切换多个Fragment

    5、提供下拉式的导航

    二、启用ActionBar

    ActionBar acitonBar= getActionBar();

    acitonBar.show();

    acitonBar.hide();

    三、显示选项菜单

    setShowAsAction(int actionEnum);该方法设置是否将该菜单项显示在ActionBar上,作为ActionItem。

    里面的参数有以下几种

        MenuItemCompat.SHOW_AS_ACTION_ALWAYS (始终显示)
        MenuItemCompat.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW (隐藏列表中显示)
      MenuItemCompat.SHOW_AS_ACTION_IF_ROOM (屏幕有空间就显示,没空间就隐藏)
      MenuItemCompat.SHOW_AS_ACTION_NEVER (永不显示)
      MenuItemCompat.SHOW_AS_ACTION_WITH_TEXT (既显示图标又显示文字)
      最后 在方法中要 return true

    四、启动程序图标导航

    1、设置是否应该将应用程序图标转变成可点击的图标,并且在图标上添加一个向左的箭头。

    setDisplayHomeAsUpEnabled(boolean showHomeAsUp)

    2、通过传入int类型常量来控制该ActionBar的显示选项

    setDisplayOptions(int options)

    a)opitions选项为

          DISPLAY_HOME_AS_UP

          DISPLAY_SHOW_CUSTOM

          DISPLAY_SHOW_HOME

          DISPLAY_SHOW_TITLE

          DISPLAY_USE_LOGO

          NAVIGATION_MODE_LIST

          NAVIGATION_MODE_STANDARD

         NAVIGATION_MODE_TABS

    3、设置是否显示应用程序的图标。

    setDislayShowHomeEnabled(boolean showHome)

    4、设置是否将应用程序图标转变成可点击的按钮。

    setHomeButtonEnabled(boolean eabled)

    五、ActionBar左上角的返回键监听

    它的id是android.R.id.home。下面列举了两种写法

    @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            if(item.getItemId() == android.R.id.home)
            {
                finish();
                return true;
            }
            return super.onOptionsItemSelected(item);
        }
    @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            if(item.isCheckable()){
                item.setCheckable(true);
            }
            //判断是哪个菜单项,并有针对性地作出响应
            switch (item.getItemId()) {
            case android.R.id.home:
                Intent intent = new Intent(this,FirstActivity.class);
                intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                startActivity(intent);
                break;
    
            default:
      break;
            }
            return super.onOptionsItemSelected(item);
        }

    六、actionBar实现Tab导航(注意:要继承ActionBar. TabListener)

    1)调用ActionBar的setNavigationMode(ActionBar.NAVIGATION_MODE_TABS)方法设置使用Tab导航方式。

    2)调用ActionBar的addTab()方法添加多个Tab标签,并为每个Tab标签添加时间监听器

      actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
       actionBar.addTab(actionBar.newTab().setText("第一页").setTabListener(this));

     

     

     

     

     

     

     

     

     

     

     

    转载于:https://www.cnblogs.com/bxfx111/p/ActionBar.html

    展开全文
  • Actionbar

    2016-12-05 21:59:31
    ActionbarActionbar是Google在android3.0推出的控件, 用于取代传统菜单键, 将菜单显示在顶栏, 虽然在Android5.0 后Google推出Toolbar来取代Actionbar. 不过系统默认还是使用的Actionbar作为应用的标题栏// 得到系统...

    Actionbar

    Actionbar是Google在android3.0推出的控件, 用于取代传统菜单键, 将菜单显示在顶栏, 虽然在Android5.0 后Google推出Toolbar来取代Actionbar. 不过系统默认还是使用的Actionbar作为应用的标题栏

    // 得到系统的ActionBar
    ActionBar supportActionBar = getSupportActionBar();//v4包中
     //设置标题
    supportActionBar.setTitle("GooglePlay");
    supportActionBar.setSubtitle("副标题");
    
    // activity同时也自带设置actionbar标题的方法, 还有
    setTitle("标题");
    
    //设置图标
    supportActionBar.setIcon(R.drawable.ic_launcher);
    supportActionBar.setLogo(R.mipmap.ic_action_call);

    默认图标是不显示的

    supportActionBar.setDisplayShowHomeEnabled(false);//默认是false,默认是隐藏图标

    虽然setIcon和 setLogo都是设置图标, 但是默认Icon比Logo的优先级高

     supportActionBar.setDisplayUseLogoEnabled(true);//默认是false,默认是没用logo,用的icon

    显示回退箭头

    006y8lVagw1faf0omvlecj30tu059q3g.jpg

    supportActionBar.setDisplayHomeAsUpEnabled(true);//默认是false,默认隐藏了回退部分

    配合DrawerLayout

    ActionBar常常和侧滑菜单配合使用

    替换回退箭头为侧滑抽屉按钮

    ActionBarDrawerToggle drawerToggle = new ActionBarDrawerToggle(this, mDrawerMain, R.string.open_menu,
                    R.string.close_menu);
    drawerToggle.syncState();

    监听Drawer的打开和关闭, 来实现更新回退按钮

    mDrawerMain.setDrawerListener(mDrawerToggle);

    演示:

    006y8lVagw1faf0x5l6cpg30f00qo7wh.gif

    点击按钮打开和关闭Drawer

        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
           mDrawerToggle.onOptionsItemSelected(item);
            return super.onOptionsItemSelected(item);
        }
    展开全文
  • actionbar

    2018-01-04 19:14:11
    创建actionbar的两种方式 两种方法,第一种是静态开启方法 把application 或者 activity的主题设置为Theme.Holo即可 package="com.baidu.homer" android:v

    创建actionbar的两种方式

    两种方法,第一种是静态开启方法
    把application 或者 activity的主题设置为Theme.Holo即可

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
         package="com.baidu.homer"
         android:versionCode="1"
         android:versionName="1.0">
      <uses-sdk android:minSdkVersion="18"/>
      <application android:label="@string/app_name" android:icon="@drawable/ic_launcher"
          android:theme="@android:style/Theme.Holo">
        <activity android:name="MyActivity"
             android:label="@string/app_name">
          <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>
          </intent-filter>
        </activity>
      </application>
    </manifest>

    第二种是动态开启

    import android.app.ActionBar;
    import android.app.Activity;
    import android.drm.DrmStore;
    import android.os.Bundle;
    
    public class MyActivity extends Activity {
      /**
       * Called when the activity is first created.
       */
      @Override
      public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        ActionBar actionBar = getActionBar();
        actionBar.show();
      }
    }
    

    使用ActionBar

    开发API11以下的程序,首先必须在AndroidManifest.xml中指定Application或Activity的theme是Theme.Holo或其子类,否则将无法使用ActionBar。

    2.1 创建Actions

    Actions即ActionBar中的每个交互项,可以在代码中创建Action,也可以在XML文件中指定(位于res/menu)。在menu资源文件中定义Action的方法如下:

    [java] view plain copy
    1. <menu xmlns:android="http://schemas.android.com/apk/res/android" >  
    2.     <item  
    3.         android:id="@+id/action_refresh"  
    4.         android:orderInCategory="100"  
    5.         android:showAsAction="always"  
    6.         android:icon="@drawable/ic_action_refresh"  
    7.         android:title="Refresh"/>  
    8.     <item  
    9.         android:id="@+id/action_settings"  
    10.         android:title="Settings">  
    11.     </item>  
    12. </menu>   
    showAsAction属性用来定义每个Action是如何显示的,always表示
    永远显示在ActionBar中,如果屏幕空间不够则无法显示,ifRoom表示屏幕空间够的情况下显示在ActionBar中,不够的话就显示在overflow中,never则表示永远显示在overflow中。
    在Activity中创建ctionBar的Action代码位于onCreateOptionsMenu()中,下面一段代码展示了创建过程:

    [java] view plain copy
    1. @Override  
    2.   public boolean onCreateOptionsMenu(Menu menu) {  
    3.     MenuInflater inflater = getMenuInflater();  
    4.     inflater.inflate(R.menu.mainmenu, menu);  
    5.     return true;  
    6.   }   
    2.2 Action的按钮交互

    如果一个Action被单击,对于activity中的onOptionsItemSelected()将被调用。该函数的传入参数是一个MenuItem。通过判断该MenuItem的Id,即可确认是哪个Action被单击。下面代码展示了该函数的使用过程。

    [java] view plain copy
    1. Override  
    2.   public boolean onOptionsItemSelected(MenuItem item) {  
    3.     switch (item.getItemId()) {  
    4.     // action with ID action_refresh was selected  
    5.     case R.id.action_refresh:  
    6.       Toast.makeText(this"Refresh selected", Toast.LENGTH_SHORT)  
    7.           .show();  
    8.       break;  
    9.     // action with ID action_settings was selected  
    10.     case R.id.action_settings:  
    11.       Toast.makeText(this"Settings selected", Toast.LENG  
    12.           .show();  
    13.       break;  
    14.     default:  
    15.       break;  
    16.     }  
    17.     return true;  
    18.   }   

    onCreateOptionsMenu()只会被调用一次。若想改变Menu,可以调用invalidateOptionsMenu(),这会使onCreateOptionsMenu()将会再次被调用。

    展开全文
  • actionBar

    2016-06-27 10:32:35
    [Android界面] actionbar的下阴影线如何消除 @null 要加在Theme里面 再说明一下, 使用的是v7的actionbar 上面这个是说的5.0之前的情况 对于5.0后的应该是设置 if(Build.VERSION.SDK_INT>...

    [Android界面] actionbar的下阴影线如何消除


    <item name="android:windowContentOverlay">@null</item> 要加在Theme里面


    再说明一下, 使用的是v7的actionbar
    上面这个是说的5.0之前的情况
    对于5.0后的应该是设置
    if(Build.VERSION.SDK_INT>=21){
                getSupportActionBar().setElevation(0);
            }

    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,043
精华内容 4,017
热门标签
关键字:

actionbar