Mik*_*e T 13 android android-switch
我正在尝试创建这样的自定义开关:
我觉得我需要的是左/右抽屉,每个都是绿色/白色状态,或者是绿色轮廓,带有抽屉,用于选择时.
我不喜欢在帖子明白这是所有样本绘制资源如何"打开"按钮,偏到左边提供向右倾斜,然而.
我正在尝试使用以下'拇指'可绘制.
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:drawable="@drawable/choice_right"/>
<item android:drawable="@drawable/choice_left"/>
</selector>
Run Code Online (Sandbox Code Playgroud)
但它似乎削减了抽签的目的.如果我也设置了这样的轨道:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<stroke
android:width="1dp"
android:color="@color/text_input"/>
<corners
android:radius="1dp"
android:bottomLeftRadius="4.5dp"
android:bottomRightRadius="4.5dp"
android:topLeftRadius="4.5dp"
android:topRightRadius="4.5dp" >
</corners>
</shape>
Run Code Online (Sandbox Code Playgroud)
然后我得到的只是一条细线.所以,我不确定下一步该尝试什么.
这不能单独使用样式,这需要自定义视图实现.这是很多代码,所以我的建议是使用第三方库,如 https://github.com/hoang8f/android-segmented-control 这个库经过试用和测试,因此可以安全地使用它而不是重写它.
我已经创建了一个示例应用程序,您可以在此处找到它来解决您的问题.你可以看看这个库,具有分段控制的正确实施.
基本上我创建了一个自定义控件,LinearLayout
它以默认值weightSum
2 扩展.两个Buttons
加上weight
1,并且应用了一些逻辑来在它们之间切换.在切换时,将触发基于此接口构建的自定义事件.
public interface SwitchToggleListener {
void onSwitchToggle(SwitchToggleState switchToggleState);
}
Run Code Online (Sandbox Code Playgroud)
我用drawable
资源来设置按钮的样式.
最终结果看起来像这样
归档时间: |
|
查看次数: |
6783 次 |
最近记录: |