首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >操作栏不显示项目

操作栏不显示项目
EN

Stack Overflow用户
提问于 2015-05-25 23:27:04
回答 2查看 102关注 0票数 0

我正在开发一个支持API-9的android应用程序,会出现带有应用程序名称的操作栏,但问题是项目没有出现--这是菜单文件:

代码语言:javascript
复制
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <!-- http://schemas.android.com/apk/lib/com.fakher.actualitefoot -->
    <!-- Settings -->
    <item
        android:id="@+id/action_refresh"
        android:icon="@drawable/ic_action_settings"
        android:title="@string/action_settings"
        app:showAsAction="never|withText" />

    <!-- Check updates -->
    <item
        android:id="@+id/action_check_updates"
        android:icon="@drawable/ic_action_refresh"
        android:title="@string/action_check_updates"
        app:showAsAction="never|withText" />

</menu>

主修班:

代码语言:javascript
复制
public class MainActivity extends FragmentActivity {

    private final Handler handler = new Handler();
    private PagerSlidingTabStrip tabs;
    private ViewPager pager;
    private PagerAdapter adapter;
    private AdView adView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ....
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main, menu);
        return super.onCreateOptionsMenu(menu);
    }

    private Drawable.Callback drawableCallback = new Drawable.Callback() {
        @Override
        public void invalidateDrawable(Drawable who) {
            getActionBar().setBackgroundDrawable(who);
        }

        @Override
        public void scheduleDrawable(Drawable who, Runnable what, long when) {
            handler.postAtTime(what, when);
        }

        @Override
        public void unscheduleDrawable(Drawable who, Runnable what) {
            handler.removeCallbacks(what);
        }
    };

    @Override
    public void onPause() {
        adView.pause();
        super.onPause();
    }

    @Override
    public void onResume() {
        super.onResume();
        adView.resume();
    }

    @Override
    public void onDestroy() {
        adView.destroy();
        super.onDestroy();
    }

}

stykes.xml:

代码语言:javascript
复制
<resources>

    <style name="AppBaseTheme" parent="android:Theme.Light"></style>

    <style name="AppTheme" parent="AppBaseTheme">

        <item name="android:windowBackground">@color/background_window</item>
        <item name="android:actionBarStyle">@style/ActionBarStyle</item>
    </style>

    <style name="ActionBarStyle" parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse">
        <!--<item name="android:icon">@drawable/ic_launcher</item>-->
        <item name="android:background">#ff127d08</item>
    </style>

</resources>

我希望操作栏显示包含菜单文件Thx :)中声明的项目的菜单。)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-25 23:51:34

您似乎正在尝试使用appcompat-v7操作条支持端口。如果是这样的话,您必须继承AppCompatActivity (或它的前身,ActionBarActivity),而不是FragmentActivity。由于AppCompatActivityActionBarActivity本身扩展了FragmentActivity,因此不会丢失任何与片段相关的功能。

另外:

  • 将所有getActionBar()调用更改为getSupportActionBar()
  • 确保您的主题是从Theme.AppCompat (或从Theme.AppCompat继承的其他东西)继承的
票数 0
EN

Stack Overflow用户

发布于 2015-05-25 23:45:33

对我来说最突出的是- app:showAsAction="never|withText",“从不”参数将阻止项目的出现。我认为应该改为:

代码语言:javascript
复制
app:showAsAction="ifRoom" 

或者:

代码语言:javascript
复制
app:showAsAction="always"

"withText“也可能会把它搞砸。我对android程序很陌生,所以我可能错了。但是检查一下,让我知道它是否有效。而且,我也不能看到所有的代码,但是您是否导入了android.support.v7.app.ActionBar (因为应用程序是用于API 9的)?没有这一点,它也无法发挥作用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30447261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档