美文网首页
SettingItem - 多类型菜单设置项

SettingItem - 多类型菜单设置项

作者: 张闻宇字二狗 | 来源:发表于2016-07-04 20:56 被阅读0次

    说明

    通常我们做设置选项会是的布局文件很复杂,并且在Activity中需要控制的控件常多。如果包含类似ToggleButton的控件,我们还要对菜单项跟ToggleButton分开控制,代码会变得非常难看。而如果使用PreferenceActivity功能又较为单一。SettingItem这个控件是一个简易的菜单项。包含开关项,文字,箭头三种类型的菜单。

    DEMO

    效果图

    特性

    • 可以设置菜单项左侧图标,右侧箭头的大小,资源文件。如未设置,菜单内容将自动向左靠拢。
    • 可以设置菜单内容文字,菜单右侧文字的颜色,大小等
    • 可以设置显示ProgressBar
    • 可以继承SettingItem实现更多类型菜单
    • 可以显示文字或图片的错误提示

    已知缺陷

    • ToggleButton使用非安卓原生控件,需要依赖MaterialProgressBar
    • 错误提示的图片无法设置大小

    使用

    在布局文件中添加

    <!--  开关菜单 -->
    <com.salmonzhg.settingitemexample.views.SettingItem
        android:id="@+id/settingItem"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:settingIcon="@drawable/ic_more_horiz_black_36dp"
        app:settingTitleTextColor="@color/colorPrimaryDark"
        app:settingTitle="For More Information"
        android:minHeight="55dp"/>
    
    <!--  文字菜单 -->
    <com.salmonzhg.settingitemexample.views.ToggleSettingItem
        android:id="@+id/toggleSetting"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:settingIcon="@drawable/ic_directions_run_black_36dp"
        app:settingTitle="Step Count"
        app:settingTitleTextColor="@color/colorPrimaryDark"
        android:minHeight="55dp"/>
    
    <!--  箭头菜单 -->
    <com.salmonzhg.settingitemexample.views.TextSettingItem
        android:id="@+id/textSetting"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:settingIcon="@drawable/ic_accessibility_red_50_36dp"
        app:settingTitle="Heart Rate Measurement"
        app:settingTitleTextColor="@color/colorPrimaryDark"
        app:settingTextColor="@color/colorAccent"
        android:minHeight="55dp"/>
    

    可选设置

    // 设置菜单右侧文字内容
    textSettingItem.setRightText("85 bpm");
    // 设置图片错误提示
    textSettingItem.setError(true);
    // 设置文字错误提示
    toggleSettingItem.setTextError("Error", true);
    // 设置震动(仅在progressing时才有效果,提示用户正在等待响应,无需重复操作)
    toggleSettingItem.shake();
    // 设置等待
    toggleSettingItem.setProgressing(true);
    

    源码

    GitHub

    相关文章

      网友评论

          本文标题:SettingItem - 多类型菜单设置项

          本文链接:https://www.haomeiwen.com/subject/lofhjttx.html