将 Android 选项菜单与操作栏合并

发布于 2024-12-28 13:38:51 字数 4039 浏览 3 评论 0原文

https://i.sstatic.net/cbdyv.jpg

似乎找不到答案对于这个问题。我已经为“文件”选项尝试了各种不同的 android 标签。

我知道你可以设置 android:uiOptions="splitActionBarWhenNarrow"

在清单中,但这只是将选项放在屏幕底部。

理想情况下,我想要 Tab1 Tab2 Tab3 Tab4 :<-(三点溢出)

出于某种原因,我的应用程序在我的操作栏下方创建了这个新栏,其中包含三点?

这是我的代码

清单

<uses-sdk android:minSdkVersion="14" />

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" 
    android:theme="@android:style/Theme.Holo" >
    <activity
        android:name=".TestForActionBarActivity"
        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>

main_options.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/file"
      android:title="File" >
</item>
</menu>

活动 包测试.actionbar;

public class TestForActionBarActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.main);

    ActionBar actionBar = getActionBar();
    actionBar.setDisplayHomeAsUpEnabled(false);
    actionBar.setDisplayShowTitleEnabled(false);
    actionBar.setDisplayShowHomeEnabled(false);

    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

    ActionBar.Tab tab1 = actionBar.newTab().setText("Tab 1");
    tab1.setTabListener(new TabListener(){

        public void onTabReselected(Tab tab, FragmentTransaction ft) {
            // TODO Auto-generated method stub

        }

        public void onTabSelected(Tab tab, FragmentTransaction ft) {
            // TODO Auto-generated method stub

        }

        public void onTabUnselected(Tab tab, FragmentTransaction ft) {
            // TODO Auto-generated method stub

        }});
    actionBar.addTab(tab1);

    ActionBar.Tab tab2 = actionBar.newTab().setText("Tab 2");
    tab2.setTabListener(new TabListener(){

        public void onTabReselected(Tab tab, FragmentTransaction ft) {
            // TODO Auto-generated method stub

        }

        public void onTabSelected(Tab tab, FragmentTransaction ft) {
            // TODO Auto-generated method stub

        }

        public void onTabUnselected(Tab tab, FragmentTransaction ft) {
            // TODO Auto-generated method stub

        }});
    actionBar.addTab(tab2);

    ActionBar.Tab tab3 = actionBar.newTab().setText("Tab 3");
    tab3.setTabListener(new TabListener(){

        public void onTabReselected(Tab tab, FragmentTransaction ft) {
            // TODO Auto-generated method stub

        }

        public void onTabSelected(Tab tab, FragmentTransaction ft) {
            // TODO Auto-generated method stub

        }

        public void onTabUnselected(Tab tab, FragmentTransaction ft) {
            // TODO Auto-generated method stub

        }});
    actionBar.addTab(tab3);

    ActionBar.Tab tab4 = actionBar.newTab().setText("Tab 4");
    tab4.setTabListener(new TabListener(){

        public void onTabReselected(Tab tab, FragmentTransaction ft) {
            // TODO Auto-generated method stub

        }

        public void onTabSelected(Tab tab, FragmentTransaction ft) {
            // TODO Auto-generated method stub

        }

        public void onTabUnselected(Tab tab, FragmentTransaction ft) {
            // TODO Auto-generated method stub

        }});
    actionBar.addTab(tab4);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.layout.main_options, menu);
    return true;
}
}

https://i.sstatic.net/cbdyv.jpg

Can't seem to find the answer to this question. I've tried all sorts of different android tags for the File option.

I know that you can set
android:uiOptions="splitActionBarWhenNarrow"

in your manifest but that just puts the options at the bottom of the screen.

Ideally I'd like to have, Tab1 Tab2 Tab3 Tab4 : <-(triple dot overflow)

For some reason my application creates this new bar beneath my action bar with the triple dots in it?

Here is my code

Manifest

<uses-sdk android:minSdkVersion="14" />

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" 
    android:theme="@android:style/Theme.Holo" >
    <activity
        android:name=".TestForActionBarActivity"
        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>

main_options.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/file"
      android:title="File" >
</item>
</menu>

Activity
package test.actionbar;

public class TestForActionBarActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.main);

    ActionBar actionBar = getActionBar();
    actionBar.setDisplayHomeAsUpEnabled(false);
    actionBar.setDisplayShowTitleEnabled(false);
    actionBar.setDisplayShowHomeEnabled(false);

    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

    ActionBar.Tab tab1 = actionBar.newTab().setText("Tab 1");
    tab1.setTabListener(new TabListener(){

        public void onTabReselected(Tab tab, FragmentTransaction ft) {
            // TODO Auto-generated method stub

        }

        public void onTabSelected(Tab tab, FragmentTransaction ft) {
            // TODO Auto-generated method stub

        }

        public void onTabUnselected(Tab tab, FragmentTransaction ft) {
            // TODO Auto-generated method stub

        }});
    actionBar.addTab(tab1);

    ActionBar.Tab tab2 = actionBar.newTab().setText("Tab 2");
    tab2.setTabListener(new TabListener(){

        public void onTabReselected(Tab tab, FragmentTransaction ft) {
            // TODO Auto-generated method stub

        }

        public void onTabSelected(Tab tab, FragmentTransaction ft) {
            // TODO Auto-generated method stub

        }

        public void onTabUnselected(Tab tab, FragmentTransaction ft) {
            // TODO Auto-generated method stub

        }});
    actionBar.addTab(tab2);

    ActionBar.Tab tab3 = actionBar.newTab().setText("Tab 3");
    tab3.setTabListener(new TabListener(){

        public void onTabReselected(Tab tab, FragmentTransaction ft) {
            // TODO Auto-generated method stub

        }

        public void onTabSelected(Tab tab, FragmentTransaction ft) {
            // TODO Auto-generated method stub

        }

        public void onTabUnselected(Tab tab, FragmentTransaction ft) {
            // TODO Auto-generated method stub

        }});
    actionBar.addTab(tab3);

    ActionBar.Tab tab4 = actionBar.newTab().setText("Tab 4");
    tab4.setTabListener(new TabListener(){

        public void onTabReselected(Tab tab, FragmentTransaction ft) {
            // TODO Auto-generated method stub

        }

        public void onTabSelected(Tab tab, FragmentTransaction ft) {
            // TODO Auto-generated method stub

        }

        public void onTabUnselected(Tab tab, FragmentTransaction ft) {
            // TODO Auto-generated method stub

        }});
    actionBar.addTab(tab4);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.layout.main_options, menu);
    return true;
}
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

满身野味 2025-01-04 13:38:51

我相信这是在狭窄(手机)屏幕上带有选项卡的操作栏的设计模式。 “添加导航选项卡”部分下的文档中有屏幕截图。

手机堆叠

I believe that is the design pattern for an action bar with tabs on a narrow (phone) screen. There are screenshots in the docs under the "Adding Navigation Tabs" section.

Phone stacked

梦中的蝴蝶 2025-01-04 13:38:51

它会创建它,因为您已经

public boolean onCreateOptionsMenu(Menu menu)

在代码中了。您可以将其注释掉,并在末尾添加另一个带有图像的选项卡(如果是三点)。

It creates it because you have

public boolean onCreateOptionsMenu(Menu menu)

in the code. You can comment it out and have another tab with image if tripledot at the end.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文