/** * MainActivity 继承AppCompatActivity overflow按钮展示菜单时位置偏上 android:theme="@style/AppTheme" * MainActivity继承Activity 时overflow按钮展示菜单时位置在ActionBar下方 android:theme="@style/AppTheme1" */ public class MainActivity extends AppCompatActivity implements ViewPager.OnPageChangeListener{ @BindView(R.id.main_viewpager) ViewPager mainViewpager; @BindView(R.id.text_one) TextView textOne; @BindView(R.id.text_two) TextView textTwo; @BindView(R.id.text_three) TextView textThree; @BindView(R.id.text_four) TextView textFour; private String[] arry_list; private ActionBar.OnNavigationListener mOnNavigationListener; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initActionBar(); ButterKnife.bind(this); } private void initActionBar() { // ActionBar actionBar = getActionBar(); /** * V4 ActionBar Activity继承AppCompatActivity */ ActionBar actionBar = getSupportActionBar(); actionBar.setLogo(R.mipmap.ic_launcher); actionBar.setDisplayUseLogoEnabled(true); actionBar.setDisplayShowHomeEnabled(true); actionBar.setDisplayHomeAsUpEnabled(true); // //导航模式必须设为NAVIGATION_MODE_LIST actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST); // 定义一个下拉列表数据适配器 SpinnerAdapter mSpinnerAdapter = ArrayAdapter.createFromResource(this, R.array.action_list, android.R.layout.simple_spinner_dropdown_item); arry_list = getResources().getStringArray(R.array.action_list); mOnNavigationListener = new ActionBar.OnNavigationListener() { @Override public boolean onNavigationItemSelected(int position, long itemId) { android.support.v4.app.Fragment newFragment = null; switch (position) { // case 0: // newFragment = new FragmentOne(); // break; // case 1: // newFragment = new FragmentOne(); // break; // case 2: // newFragment = new FragmentOne(); // break; // default: // break; } // getFragmentManager().beginTransaction().replace(R.id.container, newFragment, // arry_list[position]).commit(); return true; } }; actionBar.setListNavigationCallbacks(mSpinnerAdapter, mOnNavigationListener); } @Override public boolean onCreateOptionsMenu(Menu menu) { if (menu != null) {//反射 添加图标和文字显示 if (menu.getClass().getSimpleName().equalsIgnoreCase("MenuBuilder")) { try { Method method = menu.getClass().getDeclaredMethod("setOptionalIconsVisible",Boolean.TYPE); method.setAccessible(true); method.invoke(menu, true); } catch (Exception e) { e.printStackTrace(); } } } MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.pie, menu); MenuItem shareItem = menu.findItem(R.id.action_share); ShareActionProvider mShareActionProvider = (ShareActionProvider) MenuItemCompat.getActionProvider(shareItem); mShareActionProvider.setShareIntent(getDefaultIntent()); return super.onCreateOptionsMenu(menu); } private Intent getDefaultIntent() { Intent intent = new Intent(Intent.ACTION_SEND); intent.putExtra(Intent.EXTRA_TEXT,"年后"); intent.setType("text/plain"); return intent; } }
文件 styles.xml
<resources> <!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <!-- Customize your theme here. --> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> </style> <style name="AppTheme1" parent="android:Theme.Holo.Light"> <!-- Customize your theme here. --> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> </style> </resources>