ActionBar Demo

https://download.csdn.net/download/sinat_28238111/10695612

/**
 * 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>
发布了180 篇原创文章 · 获赞 27 · 访问量 15万+

猜你喜欢

转载自blog.csdn.net/sinat_28238111/article/details/82896908