【问题标题】:Always display the full title in the ActionBar始终在 ActionBar 中显示完整标题
【发布时间】:2012-11-15 09:13:06
【问题描述】:

我有一个带有徽标、标题、三个选项卡和一个操作项的 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",
                            MyFragment.class, null)));
    actionBar.addTab(actionBar
            .newTab()
            .setText("Tab 3")
            .setTabListener(
                    new TabListener<MyFragment>(this, "tab3",
                            MyFragment.class, null)));
}
}

【问题讨论】:

  • @Anders 请发布解决方案。如果你有一个

标签: android android-layout android-actionbar


【解决方案1】:

我想如果你想要固定的标题,那么在菜单文件夹下你会有一个类似的 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);
}

【讨论】:

  • 这不是真正回答问题,不是吗?他不需要操作按钮(项目)。如果所有的 ActionButton 都已经隐藏,并且标题仍然因为 Tabs 而被截断怎么办?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-10
  • 2013-02-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多