Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 当LayoutDirection设置为rtl时,ActionLayout不显示_Android_Xml_Xamarin.android - Fatal编程技术网

Android 当LayoutDirection设置为rtl时,ActionLayout不显示

Android 当LayoutDirection设置为rtl时,ActionLayout不显示,android,xml,xamarin.android,Android,Xml,Xamarin.android,我的工具栏上有一个actionLayout作为通知徽章。当我的手机处于ltr时,一切正常。当我把我的手机转到rtl语言环境时,徽章和菜单图标消失了,尽管它们占据了工具栏上的空间,点击它们就可以了。谁能告诉我我做错了什么 代码 public override void oncreateoptions菜单(IMenu菜单,菜单充气机) { 充气机。充气(Resource.Menu.welcome\u菜单,菜单); 使用(var icon=menu.FindItem(Resource.Id.actio

我的工具栏上有一个actionLayout作为通知徽章。当我的手机处于ltr时,一切正常。当我把我的手机转到rtl语言环境时,徽章和菜单图标消失了,尽管它们占据了工具栏上的空间,点击它们就可以了。谁能告诉我我做错了什么

代码

public override void oncreateoptions菜单(IMenu菜单,菜单充气机)
{
充气机。充气(Resource.Menu.welcome\u菜单,菜单);
使用(var icon=menu.FindItem(Resource.Id.action\u通知))
{
icon.icon.ApplyDrawableTint(MobileSettingsManager.Instance.MobileSettings.Theme.NavigationBar.icon);
if((活动作为BaseActivity.IsRtl()&&Build.VERSION.SdkInt>=BuildVersionCodes.Kitkat)
{
icon.icon.AutoMirrored=true;
var通知=menu.FindItem(Resource.Id.action\u通知).ActionView;
通知。单击+=异步委托
{
if(Utils.IsOnline(上下文))
等待移动通知();
};
_badge=notification.findviewbyd(Resource.Id.tv\u notif\u计数);
_badge.ApplyFont();
_badge.Visibility=ViewStates.Gone;
}
}
使用(var icon=menu.FindItem(Resource.Id.action\u过滤器))
icon.icon.ApplyDrawableTint(MobileSettingsManager.Instance.MobileSettings.Theme.NavigationBar.icon);
}
welcome_menu.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_filter"
    android:icon="@drawable/ic_filter"
    app:showAsAction="always"/>

  <item
    android:id="@+id/action_notification"
    app:actionLayout="@layout/action_notification_badge"
    android:icon="@drawable/notification_bell"
    app:showAsAction="always"/>
</menu>

action_notification_badge.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:clickable="true"
                android:background="@android:color/transparent"
    style="@android:style/Widget.ActionButton">
   <ImageView
        android:id="@+id/hotlist_bell"
        android:src="@drawable/notification_bell"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:layout_marginEnd="8dp"
        android:layout_marginTop="8dp"
        android:contentDescription="bell" />
    <TextView
        android:id="@+id/tv_notif_count"
        android:layout_width="wrap_content"
        android:minWidth="17sp"
        android:textSize="10sp"
        android:textColor="#ffffff"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="@null"
        android:backgroundTint="#ff0000"
        android:layout_alignTop="@id/hotlist_bell"
        android:layout_alignEnd="@id/hotlist_bell"
        android:layout_marginBottom="4dp"
        android:layout_marginStart="4dp"
        android:background="@drawable/rounded_square" /> 
</RelativeLayout>

rounded_square.xml

<?xml version="1.0" encoding="utf-8" ?>
<shape
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">
  <solid
      android:color="#a3a3a3"/>
</shape>

在这个bug上浪费了一天之后,因为我不得不使用
线性布局
而不是
相对长度
作为我的
操作通知_badge.xml的根。通常,使用
RelativeLayout
时,事情会变得一团糟(例如,您无法在Google地图中使用
RelativeLayout
作为根元素创建自定义标记信息窗口),因此始终首选
LinearLayout
action\u notification\u badge.xml的最终代码

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:clickable="true"
              android:orientation="horizontal"
    style="@android:style/Widget.ActionButton" >
  <RelativeLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
    <ImageView
         android:id="@+id/hotlist_bell"
         android:src="@drawable/ic_notification"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:gravity="center"
        android:layout_marginEnd="8dp"
         android:contentDescription="bell" />
    <TextView
        android:id="@+id/tv_notif_count"
        android:layout_width="wrap_content"
        android:minWidth="17sp"
        android:textSize="10sp"
        android:textColor="#ffffff"
        android:layout_height="wrap_content"
        android:layout_alignTop="@id/hotlist_bell"
        android:layout_alignEnd="@id/hotlist_bell"
        android:textDirection="locale"
        android:textAlignment="gravity"
        android:gravity="center"
        android:background="@drawable/rounded_square"
        android:layout_marginBottom="8dp"
        android:layout_marginStart="8dp"
        android:text="@null" />
  </RelativeLayout>
</LinearLayout>

在这个bug上浪费了一天之后,因为我不得不使用
线性布局
而不是
相对长度
作为我的
操作通知_badge.xml的根。通常,使用
RelativeLayout
时,事情会变得一团糟(例如,您无法在Google地图中使用
RelativeLayout
作为根元素创建自定义标记信息窗口),因此始终首选
LinearLayout
action\u notification\u badge.xml的最终代码

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:clickable="true"
              android:orientation="horizontal"
    style="@android:style/Widget.ActionButton" >
  <RelativeLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
    <ImageView
         android:id="@+id/hotlist_bell"
         android:src="@drawable/ic_notification"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:gravity="center"
        android:layout_marginEnd="8dp"
         android:contentDescription="bell" />
    <TextView
        android:id="@+id/tv_notif_count"
        android:layout_width="wrap_content"
        android:minWidth="17sp"
        android:textSize="10sp"
        android:textColor="#ffffff"
        android:layout_height="wrap_content"
        android:layout_alignTop="@id/hotlist_bell"
        android:layout_alignEnd="@id/hotlist_bell"
        android:textDirection="locale"
        android:textAlignment="gravity"
        android:gravity="center"
        android:background="@drawable/rounded_square"
        android:layout_marginBottom="8dp"
        android:layout_marginStart="8dp"
        android:text="@null" />
  </RelativeLayout>
</LinearLayout>