我有什么
我想实现以下目标:
这是我用来创建单选按钮现有控件的参考链接:https://github.com/kirtisagar/XamarinFormsRadioButtonXAML
.Xaml页面:
<radio:BindableRadioGroup
Spacing="10"
x:Name="DeviceConditionRadio"
ItemsSource="{Binding DeviceConditionList}"/>
.CS页面:
在这里我添加了广播的项目来源:
DeviceConditionList is a List<string>()
DeviceConditionList.Add("This device works well");
DeviceConditionList.Add("This device is not working properly");
如何获得这种设计? 任何对此的帮助表示赞赏! 谢谢。
答案 0 :(得分:1)
在共享链接中,默认样式为Title
右和Image
左。该项目基于Custom渲染器进行。您可以在此处找到渲染器。
因此您可以通过渲染器修改此样式。在共享项目中,请不要自定义RadioButton
在Android中使用Button
,在IOS中使用xml
。然后您需要在每一个中自定义。
Android :您可以修改RadioButton
来交换 <RadioButton
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:button="@null"//set null
android:checked="true"
android:drawableRight="@android:drawable/btn_radio"//reset the image
android:paddingLeft="10dp"
android:text="RadioButton" />
的标题和图像,如下所示:
android:button="@null"
android:drawableRight="@android:drawable/btn_radio"
:此语句隐藏了原始系统的RadioButton图标。
CGFloat imageWidth = jumpBtn.imageView.bounds.size.width;
CGFloat labelWidth = jumpBtn.titleLabel.bounds.size.width;
jumpBtn.imageEdgeInsets = UIEdgeInsetsMake(0, labelWidth, 0, -labelWidth);
jumpBtn.titleEdgeInsets = UIEdgeInsetsMake(0, -imageWidth, 0, imageWidth);
:将系统随附的btn_radio图标添加到原始图标的右侧。我认为RadioButton包装在btn_radio图标上。
IOS :只需将Uibutton扩展到自定义按钮,并进行如下修改:
li {
text-indent: -10px;
}
titleEdgeInsets属性和imageEdgeInsets属性仅在绘制按钮时用于调整图像和标签位置属性,而不会影响按钮本身的大小。
如果图像在右侧,标签在左侧,则图像的左侧从按钮的左侧移至labelWidth的右侧,图像的右侧移至在标签左侧的labelWidth右边。