【问题标题】:Placing ActiobBar at top right将 ActionBar 放在右上角
【发布时间】:2014-05-06 07:51:39
【问题描述】:

AFAIK ActionBar 默认情况下应该显示在顶部,但在我的情况下它会显示在底部。

我已按照标准教程进行操作,并检查了所有基础知识。

这是我的代码和支持截图:

MainActivity.java

package com.android.actionbardemo;

import android.app.ActionBar;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;

public class MainActivity extends Activity {

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

        ActionBar actionBar = getActionBar();
        actionBar.show();
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {

        getMenuInflater().inflate(R.menu.main, menu);
        return super.onCreateOptionsMenu(menu);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {

        switch (item.getItemId()) {

        case R.id.home:
            Toast.makeText(this, "Home Option Selected", Toast.LENGTH_SHORT)
                    .show();
            return true;

        case R.id.java:
            Toast.makeText(this, "Java Option Selected", Toast.LENGTH_SHORT)
                    .show();
            return true;

        case R.id.android:
            Toast.makeText(this, "Android Option Selected", Toast.LENGTH_SHORT)
                    .show();
            return true;

        default:
            return super.onOptionsItemSelected(item);
        }

    }
}

ma​​in.xml(菜单)

<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:id="@+id/action_settings"
        android:showAsAction="never"
        android:title="@string/action_settings"/>
    <item
        android:id="@+id/home"
        android:icon="@drawable/home"
        android:showAsAction="ifRoom"
        android:title="Home"/>

    <item
        android:id="@+id/java"
        android:icon="@drawable/java"
        android:showAsAction="ifRoom"
        android:title="Java"/>

    <item
        android:id="@+id/android"
        android:icon="@drawable/android"
        android:showAsAction="ifRoom"
        android:title="Android"/>

</menu>

清单文件

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.android.actionbardemo"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="11"
        android:targetSdkVersion="19" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme"
        android:uiOptions="splitActionBarWhenNarrow" >
        <activity
            android:name="com.android.actionbardemo.MainActivity"
            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>

我做错了什么吗?

任何帮助表示赞赏。

【问题讨论】:

    标签: android android-layout android-actionbar


    【解决方案1】:

    您在application 标签中使用了uiOptions splitActionBarWhenNarrow

    From the docs:

    在屏幕底部添加一个栏以显示操作项 ActionBar,当受限于水平空间时(例如在 手机上的纵向模式)。而不是少量的行动项目 出现在屏幕顶部的操作栏中,操作栏 分为顶部导航部分和底部操作栏 项目。这可确保提供合理数量的空间,而不是 仅适用于操作项,也适用于导航和标题元素 在顶部。菜单项不会跨两个栏分开;他们总是 一起出现。

    【讨论】:

    • 天哪,只需删除 android:uiOptions="splitActionBarWhenNarrow" 即可完成工作。非常感谢,伙计!
    • 但是我这里只有3个项目,怎么系统没有找到足够的空间?
    • @GAMA "...当受限于水平空间" 不是指系统确定的指定空间。建议如果您需要更多空间可以考虑使用splitActionBarWhenNarrow。你可以有一个MenuItem,它仍然会放在拆分操作栏中​​。
    猜你喜欢
    • 1970-01-01
    • 2015-03-15
    • 2011-11-09
    • 1970-01-01
    • 1970-01-01
    • 2010-11-26
    • 2017-10-23
    • 1970-01-01
    相关资源
    最近更新 更多