Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – AppCompat v7:21拆分操作栏坏了吗?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我目前正在开发一个应用程序,其中我使用了一个经过大量修改的Split Action Bar.这是应用程序当前状态的链接

您会注意到顶部有一个透明的操作栏,其中有一个@L_674_6@视图,底部一个被黑客攻击的分割操作栏.底部视图实际上是一个单独的操作项,其中@L_674_6@视图已膨胀,showAlways = true.

目前我只支持SDK v15,我并不打算改变它,但是刚刚发布的Lollipop AppCompat库,我决定实现它,@R_525_9447@在我的应用程序中获得一些非常棒的功能.

我已将主题更改为Theme.AppCompat.Light,而我的MainActivity现在扩展了ActionBarActivity而非Activity.

所有对getActionBar的引用现在都已切换到getSupportActionBar,只有这些更改,这就是我的活动现在的样子:

您会注意到我从设备监视器获得了一个UI转储,它将底部操作栏推入一个奇怪的空间并调用操作栏,并摆脱我的顶级@L_674_6@视图.

这是我设置操作栏的代码

public void initializeActionBar(){
    View customNav = LayoutInflater.from(this).inflate(R.layout.action_bar_top,null);

    actionBar = getSupportActionBar();
    actionBar.setBACkgroundDrawable(getresources().getDrawable(R.drawable.transparent_fifty_percent));

    final PopupWindow window = addPopupWindow();

    actionBarOptions = (ImageView)customNav.findViewById(R.id.options);
    actionBarOptions.setVisibility(View.GONE);
    actionBarOptions.setImageDrawable(app.svgToBitmapDrawable(getresources(),R.raw.vertical_ellipsis,app.scaleByDensity(48)));
    actionBarOptions.setOnClickListener(new View.onClickListener() {
        @Override
        public void onClick(View view) {
            window.showAsDropDown(actionBarOptions,0);
        }
    });
    TextView title = (TextView) customNav.findViewById(R.id.screen_titlE);
    Typeface font1 = Typeface.createFromAsset(getAssets(),"Merriweather-Italic.ttf");

    title.setText("Parsley");
    title.setTypeface(font1);

    actionBar.setCustomView(customNav);
    actionBar.setDisplayShowCustomEnabled(true);
    actionBar.setDisplayShowtitleEnabled(false);
    actionBar.setDisplayShowHomeEnabled(false);
    actionBar.setDisplayUselogoEnabled(false);

}


@Override
public Boolean onCreateOptionsMenu(Menu menu) {
    new MenuInflater(this).inflate(R.menu.test,menu);


    LinearLayout fullMenu = (LinearLayout) menu.findItem(R.id.full_menu).getActionView();


    ViewGroup.LayoutParams params;

    icon1 = (ImageView) fullMenu.findViewById(R.id.action_item1);
    params = icon1.getLayoutParams();
    params.width = getresources().getDisplaymetrics().widthPixels / 4;
    params.height = (int) (48 * getresources().getDisplaymetrics().density);

    icon1.setImageDrawable(app.svgToBitmapDrawable(getresources(),R.raw.shopping_list_icon,app.scaleByDensity(32)));
    icon2 = (ImageView) fullMenu.findViewById(R.id.action_item2);
    icon3 = (ImageView) fullMenu.findViewById(R.id.action_item3);
    icon4 = (ImageView) fullMenu.findViewById(R.id.action_item4);
    icon2.setImageDrawable(app.svgToBitmapDrawable(getresources(),R.raw.recipe_Box_icon,app.scaleByDensity(32)));
    icon3.setImageDrawable(app.svgToBitmapDrawable(getresources(),R.raw.icon_search,app.scaleByDensity(32)));
    icon4.setImageDrawable(app.svgToBitmapDrawable(getresources(),R.raw.icon_add,app.scaleByDensity(32)));
    params = icon2.getLayoutParams();
    params.width = getresources().getDisplaymetrics().widthPixels / 4;
    params.height = (int) (48 * getresources().getDisplaymetrics().density);
    params = icon3.getLayoutParams();
    params.width = getresources().getDisplaymetrics().widthPixels / 4;
    params.height = (int) (48 * getresources().getDisplaymetrics().density);
    params = icon4.getLayoutParams();
    params.width = getresources().getDisplaymetrics().widthPixels / 4;
    params.height = (int) (48 * getresources().getDisplaymetrics().density);
    if (!firstLoad) {
        setBottomActionBarActive();
        setActiveTab(0);
    }

    optionsLoaded = true;

    return true;
}

在我的活动中从onCreate调用initializeActionBar().我有什么想法我做错了吗?

解决方法

应该使用工具栏.在您的情况下,它是顶部的一个工具栏,底部一个工具栏.检查android团队博客,他们有很好的集成指南.

大佬总结

以上是大佬教程为你收集整理的android – AppCompat v7:21拆分操作栏坏了吗?全部内容,希望文章能够帮你解决android – AppCompat v7:21拆分操作栏坏了吗?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。