将 Android 选项菜单与操作栏合并
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 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我相信这是在狭窄(手机)屏幕上带有选项卡的操作栏的设计模式。 “添加导航选项卡”部分下的文档中有屏幕截图。
手机堆叠
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
它会创建它,因为您已经
在代码中了。您可以将其注释掉,并在末尾添加另一个带有图像的选项卡(如果是三点)。
It creates it because you have
in the code. You can comment it out and have another tab with image if tripledot at the end.