Android 如何在操作栏上显示文本和图标

Android 如何在操作栏上显示文本和图标,android,android-actionbar,Android,Android Actionbar,我试图在操作栏上显示带有图标的文本。我编写了以下代码: <item android:id=... android:title="title" android:icon="@drawable/fra" android:showAsAction="withtext"/> 但结果是一个可单击的操作栏,没有显示任何内容您可以添加app:showAsAction=“always” 您可以添加app:showAsAction=“always” 您还可以使用代码实现ActionBar

我试图在操作栏上显示带有图标的文本。我编写了以下代码:

<item
 android:id=...
 android:title="title"
 android:icon="@drawable/fra"
 android:showAsAction="withtext"/>


但结果是一个可单击的操作栏,没有显示任何内容

您可以添加
app:showAsAction=“always”


您可以添加
app:showAsAction=“always”


您还可以使用代码实现ActionBar自定义显示,例如:

    getSupportActionBar().setTitle("");
    getSupportActionBar().setDisplayShowHomeEnabled(false);
    getSupportActionBar().setDisplayShowCustomEnabled(true);
    getSupportActionBar().setDisplayShowTitleEnabled(false);

    getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
    getSupportActionBar().setCustomView(R.layout.action_bar_title);
以及定义所需内容的布局,这只是一个示例:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="5dp"
android:layout_marginTop="5dp"
android:orientation="vertical" >
   <ImageView
       android:id="@+id/title"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_gravity="center"
       android:src="@drawable/some_image" />
</LinearLayout>

您还可以使用代码实现ActionBar自定义显示,例如:

    getSupportActionBar().setTitle("");
    getSupportActionBar().setDisplayShowHomeEnabled(false);
    getSupportActionBar().setDisplayShowCustomEnabled(true);
    getSupportActionBar().setDisplayShowTitleEnabled(false);

    getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
    getSupportActionBar().setCustomView(R.layout.action_bar_title);
以及定义所需内容的布局,这只是一个示例:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="5dp"
android:layout_marginTop="5dp"
android:orientation="vertical" >
   <ImageView
       android:id="@+id/title"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_gravity="center"
       android:src="@drawable/some_image" />
</LinearLayout>

这是工具栏的示例:

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="@dimen/toolbar_height"
    android:layout_alignParentTop="true">

<ImageView
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:src="@drawable/ic_home" />


</android.support.v7.widget.Toolbar>

这是工具栏的示例:

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="@dimen/toolbar_height"
    android:layout_alignParentTop="true">

<ImageView
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:src="@drawable/ic_home" />


</android.support.v7.widget.Toolbar>


您的重点是使用actionBar吗?因为在你的情况下使用工具栏更好。@Ashkan你能告诉我为什么使用工具栏更好吗?请提供一个例子,工具栏是ActionBar的新版本。在工具栏中,您可以将图标、文本、图像设置得更简单。有关工具栏演示,请参阅此链接。使用actionBar的重点是什么?因为在你的情况下使用工具栏更好。@Ashkan你能告诉我为什么使用工具栏更好吗?请提供一个例子,工具栏是ActionBar的新版本。在工具栏中,您可以设置您的图标、文本、图像更简单。有关工具栏演示,请参阅此链接。我认为您只能显示图标或文本。如果要显示文本,请删除图标。或者,如果您想要自定义实现,请参见@Udi I answer,我认为您只能显示图标或文本。如果要显示文本,请删除图标。或者,如果您希望自定义实现,请参见@Udi I answer,您可以告诉我应该在哪个生命周期回调中使用您的代码吗?是onStart()吗?您应该在OnCreate中使用它吗?因此您的代码不需要onCreateOptionMenu?是吗?您可以告诉我应该在哪个生命周期回调中使用您的代码吗?是onStart()吗您应该在onCreateOptionMenu中使用它,这样您的代码就不需要onCreateOptionMenu?是吗?