Git Product home page Git Product logo

lsettingview's Introduction

LSettingView

设置界面条目封装,同时包含:

  • 设置左侧图标
  • 设置左侧文字
  • 设置右侧图标
  • 设置右侧图标是否显示
  • 设置右侧为复选框样式
  • 设置右侧为开关模式
  • 设置右侧文字及样式

 1.7.0 更新

  • 最低API版本调整为14

 1.6.0 更新

  • 左侧图标默认不显示
  • 文字大小统一设置为float格式
  • 属性文字(textSize)和颜色(textColor)改成:LtextSize 和 LtextColor,避免和系统冲突

 新增设置

  • 设置左侧图标大小
  • 设置左侧图标和文字间距
  • 代码动态更改左侧文字
  • 代码动态更改右侧文字
  • 复选框和切换按钮模式下增加选中状态监听

运行效果:

效果1 效果2 效果3 效果4 效果5 效果6

快速使用

1. 添加依赖

compile 'com.leon:lsettingviewlibrary:1.7.0'

2. 在布局文件中引用

<com.leon.lib.settingview.LSettingItem
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/item_one"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    leon:leftIcon="@drawable/history"
    leon:leftText="我的消息"/>

3. 添加单击事件处理

LSettingItem mSettingItemOne = (LSettingItem) findViewById(R.id.item_one);
mSettingItemOne.setmOnLSettingItemClick(new LSettingItem.OnLSettingItemClick() {
            @Override
            public void click(boolean isChecked) {
                Toast.makeText(getApplicationContext(), "我的消息", Toast.LENGTH_SHORT).show();
            }
        });
 //更改左侧文字       
mSettingItemOne.setLeftText("左侧文字");
//更改右侧文字
mSettingItemOne.setRightText("右侧文字");

自定义属性

方法说明

属性 说明 类型
leftText 左侧文字 string
leftIcon 左侧图标 integer
rightIcon 右侧图标 integer
LtextSize 左侧文字大小 dimension
LtextColor 左侧文字颜色 color
isShowUnderLine 是否显示底部分割线 boolean
rightStyle 右侧图标风格 enum
isShowRightText 是否显示右侧文字 boolean
rightText 右侧文字 string
rightTextSize 右侧文字大小 boolean
rightTextColor 右侧文字颜色 color
leftIconSize 左侧图标大小 dimension
leftTextMarginLeft 左侧图标与文字间距 dimension

右侧图标风格

  • iconShow 显示图标
  • iconHide 隐藏图标
  • iconCheck 显示复选框
  • iconSwitch 显示切换开关

如果本库对你有用,欢迎star或者fork! 欢迎访问 博客 查看更多文章。

lsettingview's People

Contributors

leonhua avatar limuyang2 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

lsettingview's Issues

设置右侧文字的问题

你好,反馈一个问题,代码中设置右侧文字之后有时候文字会竖起来显示,刷新后又正常了。
比如设置文字为100,可能会显示成
1
0
0

一点小建议

下边的那个开关按钮和checkbox 不是太智能,一般如果能打开关闭都会去对开关状态做一个监听的!希望楼主能改进,我水平太差,无能为力!静待楼主

问题

请问右侧按钮怎么设置啊?文档的rightstyle不好使

AndroidStdio无法预览,无法实例化

java.lang.ClassNotFoundException: android.view.View$OnUnhandledKeyEventListener at org.jetbrains.android.uipreview.ModuleClassLoader.load(ModuleClassLoader.java:180) at com.android.tools.idea.rendering.RenderClassLoader.findClass(RenderClassLoader.java:61) at org.jetbrains.android.uipreview.ModuleClassLoader.findClass(ModuleClassLoader.java:118) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at org.jetbrains.android.uipreview.ModuleClassLoader.loadClass(ModuleClassLoader.java:213) at android.support.v7.widget.SwitchCompat.setChecked(SwitchCompat.java:1066) at android.widget.CompoundButton.<init>(CompoundButton.java:117) at android.widget.CompoundButton.<init>(CompoundButton.java:90) at android.support.v7.widget.SwitchCompat.<init>(SwitchCompat.java:218) at android.support.v7.widget.SwitchCompat.<init>(SwitchCompat.java:204) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at org.jetbrains.android.uipreview.ViewLoader.createNewInstance(ViewLoader.java:481) at org.jetbrains.android.uipreview.ViewLoader.loadClass(ViewLoader.java:264) at org.jetbrains.android.uipreview.ViewLoader.loadView(ViewLoader.java:222) at com.android.tools.idea.rendering.LayoutlibCallbackImpl.loadView(LayoutlibCallbackImpl.java:209) at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:337) at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:348) at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:248) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730) at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:863) at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72) at android.view.LayoutInflater.rInflate(LayoutInflater.java:837) at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824) at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:866) at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72) at android.view.LayoutInflater.rInflate(LayoutInflater.java:837) at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824) at android.view.LayoutInflater.inflate(LayoutInflater.java:515) at android.view.LayoutInflater.inflate(LayoutInflater.java:394) at android.view.BridgeInflater.inflate(BridgeInflater.java:302) at android.view.View.inflate(View.java:23239) at com.leon.lib.settingview.LSettingItem.initView(LSettingItem.java:199) at com.leon.lib.settingview.LSettingItem.<init>(LSettingItem.java:77) at com.leon.lib.settingview.LSettingItem.<init>(LSettingItem.java:72) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at org.jetbrains.android.uipreview.ViewLoader.createNewInstance(ViewLoader.java:481) at org.jetbrains.android.uipreview.ViewLoader.loadClass(ViewLoader.java:264) at org.jetbrains.android.uipreview.ViewLoader.loadView(ViewLoader.java:222) at com.android.tools.idea.rendering.LayoutlibCallbackImpl.loadView(LayoutlibCallbackImpl.java:209) at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:337) at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:348) at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:248) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730) at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:863) at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72) at android.view.LayoutInflater.rInflate(LayoutInflater.java:837) at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824) at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:866) at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72) at android.view.LayoutInflater.rInflate(LayoutInflater.java:837) at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824) at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:866) at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:72) at android.view.LayoutInflater.rInflate(LayoutInflater.java:837) at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824) at android.view.LayoutInflater.inflate(LayoutInflater.java:515) at android.view.LayoutInflater.inflate(LayoutInflater.java:394) at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:325) at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:384) at com.android.tools.idea.layoutlib.LayoutLibrary.createSession(LayoutLibrary.java:193) at com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:544) at com.android.tools.idea.rendering.RenderTask.lambda$inflate$3(RenderTask.java:678) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745)

click问题

setmOnLSettingItemClick这个的m去掉会不会好点?
public void click(boolean isChecked) {

        }

把id或者view返回是不是会好点

style里面textSize可以换个名字么

textSize和textColor与原来别的style重复了,所以建议在style中textSize和textColor能换一个不会重复的名字来命名,不然去改别的地方容易乱,辛苦楼主

状态保存问题

使用大神控件听选择框或者切换按钮后,不能设置当前状态,总是关闭状态
大神,能否告知我,是我没有找到方法吧,
在别人的评价中也看到了这个问题,
我这APP已经完成一半,望大神能早日解决啊!

请教一个问题

如果需要开关按钮功能,而且我这次是打开开关的,下次再打开APP的时候已经记录了当前打开的状态的ture,那怎么设置开关是开的状态呢,我没有找到方法是可以设置开关是开的。

条目点击回调问题

可以在回调方法返回控件id,如onclick(int id),在处理点击事件时更方便,不然每个条目都得写个匿名内部类

设置rightIcon为hide

设置右侧文字会显示靠左, 右侧图片为invisible
在源码
case 1:
//隐藏右侧图标
mRightLayout.setVisibility(View.INVISIBLE);
mRightLayout.getLayoutParams().width = 32;//多加一行这个将文字设置靠右对齐即可
break;

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.