Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 66a77d1

Browse files
committed
Added setOnCheckChangeListener() demo
1 parent 8dbd472 commit 66a77d1

File tree

3 files changed

+79
-46
lines changed

3 files changed

+79
-46
lines changed
Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,28 @@
11
package cn.intret.lab.loadingtogglebutton
22

3-
import android.support.v7.app.AppCompatActivity
43
import android.os.Bundle
5-
import android.widget.ToggleButton
4+
import android.support.v7.app.AppCompatActivity
5+
import kotlinx.android.synthetic.main.activity_main.*
66

77
class MainActivity : AppCompatActivity() {
88

99
override fun onCreate(savedInstanceState: Bundle?) {
1010
super.onCreate(savedInstanceState)
1111
setContentView(R.layout.activity_main)
12+
13+
initViews()
14+
}
15+
16+
private fun initViews() {
17+
// toggle1
18+
log1.text = getCheckDesc(toggle1.isChecked)
19+
toggle1.setOnCheckChangeListener { buttonView, isChecked -> log1.text = getCheckDesc(isChecked) }
20+
log1.setOnClickListener { toggle1.toggle() }
21+
22+
// toggle2
23+
1224
}
25+
26+
private fun getCheckDesc(isChecked: Boolean) : String =
27+
(if (isChecked) "It's checked ( click me! )" else "It's unchecked")
1328
}

‎app/src/main/res/layout/activity_main.xml‎

Lines changed: 55 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -7,95 +7,110 @@
77
android:layout_height="match_parent"
88
tools:context="cn.intret.lab.loadingtogglebutton.MainActivity">
99

10+
<!--toggle1-->
1011
<cn.intret.lab.library.LoadingToggleButton
11-
android:id="@+id/toggle"
12-
app:layout_constraintLeft_toLeftOf="parent"
13-
app:layout_constraintTop_toTopOf="parent"
14-
android:layout_marginLeft="16dp"
15-
android:layout_marginTop="16dp"
12+
android:id="@+id/toggle1"
1613
android:layout_width="50dp"
1714
android:layout_height="25dp"
18-
app:ltbChecked="true"
19-
app:ltbBackgroundRadius="5dp"
20-
app:ltbToggleRadius="4dp"
15+
android:layout_marginLeft="16dp"
16+
android:layout_marginTop="16dp"
17+
app:layout_constraintLeft_toLeftOf="parent"
18+
app:layout_constraintTop_toTopOf="parent"
2119
app:ltbBackgroundCheckedColor="@color/colorAccent"
20+
app:ltbBackgroundRadius="5dp"
2221
app:ltbBackgroundUncheckedColor="@android:color/darker_gray"
22+
23+
app:ltbChecked="true"
24+
app:ltbDuration="300"
2325
app:ltbToggleCheckedColor="@android:color/white"
26+
app:ltbToggleRadius="4dp"
2427
app:ltbToggleUncheckedColor="@android:color/white"
25-
app:ltbDuration="300"
26-
/>
28+
/>
29+
30+
<TextView
31+
android:id="@+id/log1"
32+
android:layout_width="wrap_content"
33+
android:layout_height="wrap_content"
34+
android:layout_marginLeft="16dp"
35+
android:gravity="center_vertical"
36+
app:layout_constraintBottom_toBottomOf="@+id/toggle1"
37+
app:layout_constraintLeft_toRightOf="@+id/toggle1"
38+
app:layout_constraintTop_toTopOf="@+id/toggle1"
39+
tools:text="it's on"/>
2740

41+
<!--toggle2-->
2842
<cn.intret.lab.library.LoadingToggleButton
2943
android:id="@+id/toggle2"
30-
app:layout_constraintLeft_toLeftOf="parent"
31-
app:layout_constraintTop_toBottomOf="@id/toggle"
32-
android:layout_marginLeft="16dp"
33-
android:layout_marginTop="16dp"
3444
android:layout_width="50dp"
3545
android:layout_height="25dp"
36-
app:ltbChecked="false"
37-
app:ltbBackgroundRadius="5dp"
38-
app:ltbToggleRadius="4dp"
46+
android:layout_marginLeft="16dp"
47+
android:layout_marginTop="16dp"
48+
app:layout_constraintLeft_toLeftOf="parent"
49+
app:layout_constraintTop_toBottomOf="@+id/toggle1"
50+
3951
app:ltbBackgroundCheckedColor="@color/colorAccent"
52+
app:ltbBackgroundRadius="5dp"
4053
app:ltbBackgroundUncheckedColor="@android:color/darker_gray"
54+
app:ltbChecked="false"
55+
app:ltbDuration="300"
4156
app:ltbToggleCheckedColor="@android:color/white"
57+
app:ltbToggleRadius="4dp"
4258
app:ltbToggleUncheckedColor="@android:color/white"
43-
app:ltbDuration="300"
4459
/>
4560

4661
<cn.intret.lab.library.LoadingToggleButton
4762
android:id="@+id/toggle_round"
48-
app:layout_constraintLeft_toLeftOf="parent"
49-
app:layout_constraintTop_toBottomOf="@id/toggle2"
50-
android:layout_marginLeft="16dp"
51-
android:layout_marginTop="16dp"
5263
android:layout_width="50dp"
5364
android:layout_height="25dp"
54-
app:ltbChecked="false"
65+
android:layout_marginLeft="16dp"
66+
android:layout_marginTop="16dp"
67+
app:layout_constraintLeft_toLeftOf="parent"
68+
app:layout_constraintTop_toBottomOf="@id/toggle2"
5569
app:ltbBackgroundCheckedColor="@android:color/holo_purple"
5670
app:ltbBackgroundUncheckedColor="@android:color/darker_gray"
71+
app:ltbChecked="false"
72+
app:ltbDuration="300"
5773
app:ltbToggleCheckedColor="@android:color/white"
5874
app:ltbToggleUncheckedColor="@android:color/white"
59-
app:ltbDuration="300"
6075
/>
6176

6277
<cn.intret.lab.library.LoadingToggleButton
6378
android:id="@+id/toggle_round2"
64-
app:layout_constraintLeft_toLeftOf="parent"
65-
app:layout_constraintTop_toBottomOf="@id/toggle_round"
66-
android:layout_marginLeft="16dp"
67-
android:layout_marginTop="16dp"
6879
android:layout_width="50dp"
6980
android:layout_height="25dp"
70-
app:ltbChecked="true"
81+
android:layout_marginLeft="16dp"
82+
android:layout_marginTop="16dp"
83+
app:layout_constraintLeft_toLeftOf="parent"
84+
app:layout_constraintTop_toBottomOf="@id/toggle_round"
7185
app:ltbBackgroundCheckedColor="@android:color/holo_purple"
7286
app:ltbBackgroundUncheckedColor="@android:color/darker_gray"
87+
app:ltbChecked="true"
7388

89+
app:ltbDuration="300"
7490
app:ltbToggleCheckedColor="@android:color/white"
75-
app:ltbToggleUncheckedColor="@android:color/white"
76-
app:ltbToggleIndicatorVisibility="show"
7791
app:ltbToggleIndicatorHeight="8dp"
92+
app:ltbToggleIndicatorVisibility="show"
7893
app:ltbToggleIndicatorWidth="2dp"
79-
app:ltbDuration="300"
94+
app:ltbToggleUncheckedColor="@android:color/white"
8095
/>
8196

8297
<cn.intret.lab.library.LoadingToggleButton
8398
android:id="@+id/toggle_round3"
84-
app:layout_constraintLeft_toLeftOf="parent"
85-
app:layout_constraintTop_toBottomOf="@id/toggle_round2"
86-
android:layout_marginLeft="16dp"
87-
android:layout_marginTop="16dp"
8899
android:layout_width="50dp"
89100
android:layout_height="25dp"
90-
app:ltbChecked="true"
101+
android:layout_marginLeft="16dp"
102+
android:layout_marginTop="16dp"
103+
app:layout_constraintLeft_toLeftOf="parent"
104+
app:layout_constraintTop_toBottomOf="@id/toggle_round2"
91105
app:ltbBackgroundCheckedColor="@android:color/holo_purple"
92106
app:ltbBackgroundUncheckedColor="@android:color/darker_gray"
93-
app:ltbToggleIndicatorVisibility="show"
107+
app:ltbChecked="true"
108+
app:ltbDuration="300"
94109
app:ltbToggleCheckedColor="@android:color/white"
95-
app:ltbToggleUncheckedColor="@android:color/white"
96110
app:ltbToggleIndicatorHeight="2dp"
111+
app:ltbToggleIndicatorVisibility="show"
97112
app:ltbToggleIndicatorWidth="8dp"
98-
app:ltbDuration="300"
113+
app:ltbToggleUncheckedColor="@android:color/white"
99114
/>
100115

101116
</android.support.constraint.ConstraintLayout>

‎library/src/main/java/cn/intret/lab/library/LoadingToggleButton.java‎

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,16 @@
2929
public class LoadingToggleButton extends View implements Checkable, Animatable {
3030
private static final String TAG = LoadingToggleButton.class.getSimpleName();
3131

32+
public interface OnCheckedChangeListener {
33+
void onCheckedChanged(View buttonView, boolean isChecked);
34+
}
35+
private OnCheckedChangeListener mOnCheckedChangeListener;
36+
3237
private Paint mDebugPaint;
3338
private boolean mShowAssistantLine = false;
3439

3540
private final float SCALE = (float) (Math.sqrt(2) / 2);
36-
privateOnCheckedChangeListenermOnCheckedChangeListener;
41+
3742
private boolean mChecked;
3843
private float mSunCenterX;
3944

@@ -345,9 +350,7 @@ public boolean isRunning() {
345350
return false;
346351
}
347352

348-
public interface OnCheckedChangeListener {
349-
void onCheckedChanged(View buttonView, boolean isChecked);
350-
}
353+
351354

352355
@Override
353356
protected int[] onCreateDrawableState(int extraSpace) {

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /