在 RTL 中,选项菜单项图标显示不正确!! 但在 LTR 中,一切都显示得很好很漂亮。
在这个命令的帮助下,我制作了RTL程序
getWindow().getDecorView().setLayoutDirection(View.LAYOUT_DIRECTION_RTL);
我的菜单layout.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"
android:gravity="start"
android:layoutDirection="rtl"
android:layout_gravity="start">
<item
android:id="@+id/action_more"
android:icon="@drawable/ic_add_white_24dp"
android:title=""
app:showAsAction="always">
<menu>
<item
android:id="@+id/action_settings"
android:icon="@drawable/ic_wb_sunny_black_24dp"
android:title="آیتم شماره 1"/>
<item
android:id="@+id/action_settings2"
android:icon="@drawable/ic_star_black_24dp"
android:title="آیتم شماره 2"/>
<item
android:id="@+id/action_settings3"
android:icon="@drawable/ic_wb_sunny_black_24dp"
android:title="آیتم شماره 3"/>
</menu>
</item>
</menu>
请帮我解决这个问题。
最佳答案
我在 RTL 布局中遇到了同样的问题,如果您使用的是 Support Library 或 AndroidX,您可以应用这个简单的修复:
- 在您的项目中,使用此名称
abc_list_menu_item_icon.xml
在res -> layout
中创建新的布局文件。 将下面的代码复制到步骤 1 中的文件中。
<?xml version="1.0" encoding="utf-8"?> <!-- Copyright (C) 2007 The Android Open Source Project Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <ImageView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/icon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_marginLeft="8dip" android:layout_marginRight="-8dip" android:layout_marginStart="8dip" android:layout_marginEnd="-8dip" android:layout_marginTop="8dip" android:layout_marginBottom="8dip" android:scaleType="centerInside" android:duplicateParentState="true"/>
关于android - MenuItem 图标在 RTL 布局中未正确显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54179916/