繁体   English   中英

如何在 Android 中以 xamarin 形式实现复选框的不确定 state

[英]How to achieve Indeterminate state for checkbox in xamarin form In Android

我想实现 CheckBox,它适用于三个 state。 在 UWP 中,我可以使用带有“IsThreeState”的自定义渲染器并通过设置 IsChecked 属性 null 来实现。 但在android定制中无法实现。 请帮忙在此处输入图像描述

在 Android 和 iOS 你可以安装插件
Xamarin.Forms.InputKit来自 nuget。

用法

<StackLayout >
  <input:CheckBox Text="Option 1" Type="Box" />
  <input:CheckBox Text="Hello World I'm Option 2" Type="Check"/>
  <input:CheckBox Text="Consetetur eum kasd eos dolore Option 3" Type="Cross"/>
  [![enter image description here][1]][1]<input:CheckBox Text="Sea sed justo" Type="Star"/>
</StackLayout>

在您的情况下,您需要将 Type 设置为Box以显示 Inderminate state。

有关该插件的更多详细信息,您可以参考https://github.com/enisn/Xamarin.Forms.InputKit

在这里,我正在回答我自己的问题..

我从 android native 那里得到了这个提示。 这里我们可以设置原生控件点击时的三种图片资源,可以调用xamarin通用控件的事件处理函数。

      bool IsChecked;
      if (Control == null)
      {
         CheckBox cb = new CheckBox(Context); //CheckBox is Android Native control
         SetNativeControl(chkBox);
      }
        
      Control.Click += Clicked;


    private void Clicked(object sender, EventArgs e)
    {
        if(IsChecked == false)
        {
            Control.SetButtonDrawable(Resource.Drawable.ic_checked);
        }
        else if(IsChecked == true)
        {
         Control.SetButtonDrawable(Resource.Drawable.ic_Inderterminate);
        }
        else if (IsChecked == null)
        {
            Control.SetButtonDrawable(Resource.Drawable.ic_unChecked);
        }
        FormCheckBox?.InvokEvent(Element, e);
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM