我有一个带有徽标,标题,三个标签和一个操作项的ActionBar.
在纵向模式下,一切看起来都不错,因为选项卡被移动到堆叠的ActionBar,如下所示:
_________________
#我的头¤
_________________
标签1 |标签2 |标签3
_________________
但在横向模式下,标题会被截断,因为标签会移动到顶部的ActionBar,如下所示:
__________________________
#我… |标签1 |标签2 |标签3 | ¤
__________________________
无论如何,我可以告诉ActionBar标题永远不会被截断吗?如果没有,我至少可以设置标题的宽度吗?
(即使在横向模式下,如果选项卡移动到堆叠的ActionBar,也可以)
编辑:
代码要求.这里是:
public class MyActivity extends SherlockFragmentActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ActionBar actionBar = super.getSupportActionBar(); actionBar.setHomeButtonEnabled(true); actionBar.setDisplayHomeAsUpEnabled(true); actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); actionBar.setTitle("My Long Title"); actionBar.addTab(actionBar .newTab() .setText("Tab 1") .setTabListener( new TabListener<MyFragment>(this,"tab1",MyFragment.class,null))); actionBar.addTab(actionBar .newTab() .setText("Tab 2") .setTabListener( new TabListener<MyFragment>(this,"tab2",null))); actionBar.addTab(actionBar .newTab() .setText("Tab 3") .setTabListener( new TabListener<MyFragment>(this,"tab3",null))); } }
解决方法
我想如果你想要固定的标题然后在菜单文件夹下你将有一个像xml的文件
<menu xmlns:android="http://schemas.android.com/apk/res/android" > <group android:id="@+id/group" > <item android:id="@+id/menu1" android:orderInCategory="100" android:showAsAction="ifRoom" android:title="@string/menu1"/> <item android:id="@+id/Search" android:actionViewClass="android.widget.SearchView" android:icon="@drawable/ic_action_search" android:orderInCategory="100" android:showAsAction="always" android:title="@string/menu3"> </item> <item .............. </item> </group> </menu>
在上面的代码中android:showAsAction起着至关重要的作用.如果你想要任何应该显示的项目,那么你应该使用android:showAsAction =“always”.这肯定会解决你的问题.
我没有使用SherlockFragmentActivity,但我认为这可以帮到你很多.
我建议你通过你的菜单文件夹的xml文件处理它,并在你的java文件中进行以下处理.代码如下: –
在你的onCreate()中试试这个: –
setContentView(R.layout.activity_action_bar_eg);//this is the xml file name inside the menu folder getActionBar().setHomeButtonEnabled(true); getActionBar().setDisplayShowTitleEnabled(false); ActionBar bar=getActionBar(); bar.show();
对于您的问题的解决方案也有此更改
@Override public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.activity_action_bar_eg,menu); }