簡體   English   中英

嘗試顯示帶有文本android ActionBar的圖標

[英]attempting to display icon with text android ActionBar

我正在嘗試在Android導航欄中顯示帶有搜索欄的圖標,但它只會一直顯示該圖標。 這是我的xml代碼

<item android:id="@+id/action_login"
        android:title="Login"
        android:icon="@android:drawable/ic_lock_lock"
        app:showAsAction="always|withText" />

這是xml的完整代碼

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">


   <item android:id="@+id/action_login"
        android:title="Login"
        android:icon="@android:drawable/ic_lock_lock"
        app:showAsAction="always|withText" />
</menu>

有什么問題

更改此-:

android:icon="@android:drawable/ic_lock_lock"

至-:

android:icon="@drawable/ic_lock_lock"

要么

android:icon="@mipmap/ic_lock_lock"

我已經通過以下代碼解決了這個問題:

1-在菜單文件夾中創建菜單

    <menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    tools:context=".MainActivity">

<item
   android:id="@+id/action_sign"
   android:title="Sing In"
   app:showAsAction="always|withText"
   app:actionLayout="@layout/menu_sign" />

2- app:actionLayout是關鍵字,然后創建名為menu_sign的布局,並將textView放入其中。 該圖標將由drawableLeft顯示

 <TextView xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:clickable="true"
     android:drawableLeft="@mipmap/ic_user_sign"
     android:gravity="center"
     android:orientation="vertical"
     android:text="@string/text"
     android:drawablePadding="@dimen/margin_5"
     android:paddingLeft="@dimen/margin_10"
     android:paddingRight="@dimen/margin_10"
     android:textColor="@android:color/white" />

3-為菜單添加監聽器

super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.menu_sign, menu);
signItem = menu.findItem(R.id.action_sign);
signItem.getActionView().setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        onOptionsItemSelected(signItem);
    }
});

您的代碼在Android 5.0及更高版本中可以正常工作。

但是在android 4.2中只顯示圖標,而不顯示文本!

因此,如果您在5.0以下工作,請使用actionLayout

請參考以下答案: 如何在ActionBar圖標上獲取文本?

希望這個能對您有所幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM