IT TIP

menuitem의 actionlayout은 아무것도하지 않습니다.

itqueen 2020. 12. 31. 23:16
반응형

menuitem의 actionlayout은 아무것도하지 않습니다.


메뉴 항목에 actionLayout을 설정하고 배경색과 이미지를 설정하고 있지만 존중되지 않습니다. 내 활동에는 다음이 있습니다.

getMenuInflater().inflate(R.menu.submit_action, menu);

내 submit_action은 다음과 같습니다.

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <item android:id="@+id/action_submit"
        android:actionLayout="@layout/check"
        app:showAsAction="always"  />
</menu>

내 수표 레이아웃은

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    style="?android:attr/actionButtonStyle"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#e8e8e8"
    android:clickable="true"
    android:contentDescription="lol" >

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:contentDescription="@null"
        android:scaleType="centerInside"
        android:src="@drawable/ic_action_tick" />

</RelativeLayout>

하지만이 모든 설정을 사용해도 내 메뉴 항목이 전혀 표시되지 않고 작업 표시 줄이 나타나는 방식입니다 (하지만 클릭에 응답하지만 나타나지 않기 때문에 여기에 있습니다).

여기에 이미지 설명 입력


app:actionLayout="@layout/check"대신 시도하십시오 android:actionLayout="@layout/check".

ActionbarSherlock또는을 사용 AppCompat하는 경우 android:네임 스페이스가 MenuItems에서 작동하지 않습니다 . 이는 이러한 라이브러리가 이전 버전의 프레임 워크에 존재하지 않았기 때문에 Android API를 모방하는 사용자 지정 속성을 사용하기 때문입니다.


Appcompact를 사용할 때 메뉴 항목은 다음과 같습니다.

<item android:id="@+id/cart"
    app:actionLayout="@layout/actionbar_cart"
    android:title="@string/action_cart"
    app:showAsAction="always"
 />


Ben Harris의 대답은 절대적으로 정확합니다. 그러나 다음과 같은 속성을 사용할 때와 같은 경우에는

      app:showAsAction="ifRoom|collapseActionView"

SearchView (제 경우)에서 사용하면 레이아웃보기가 표시되지 않아 많은 골칫거리가되었습니다. appcombat의 액션 뷰에서 collapseActionView가 지원되지 않는 것 같습니다. 그래서 당신의 물건을하는 동안 이것도 고려하십시오.


Android 대신 앱 네임 스페이스를 사용하면 제대로 작동합니다.

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <item android:id="@+id/action_submit"
        app:actionLayout="@layout/check"
        app:showAsAction="always"  />
</menu>

참조 URL : https://stackoverflow.com/questions/23211761/actionlayout-on-menuitem-does-nothing

반응형