修复部分bug
This commit is contained in:
@@ -83,33 +83,8 @@ public class LoginActivity extends BaseActivity<ActivityLoginBinding> implements
|
||||
String str="我已阅读并同意《隐私政策》和《用户协议》";
|
||||
SpannableStringBuilder ssb = new SpannableStringBuilder();
|
||||
ssb.append(str);
|
||||
int v1 = str.indexOf("《");
|
||||
ssb.setSpan(new ClickableSpan() {
|
||||
@Override
|
||||
public void onClick(@NonNull View widget) {
|
||||
if (mDataBinding.tvYs.isSelected()) {
|
||||
mDataBinding.tvYs.setSelected(false);
|
||||
|
||||
Drawable drawable = getResources().getDrawable(R.mipmap.icon_publish_selected2);
|
||||
drawable.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight());
|
||||
mDataBinding.tvYs.setCompoundDrawables(drawable, null, null, null);
|
||||
|
||||
} else {
|
||||
mDataBinding.tvYs.setSelected(true);
|
||||
Drawable drawable = getResources().getDrawable(R.mipmap.icon_publish_selected);
|
||||
drawable.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight());
|
||||
mDataBinding.tvYs.setCompoundDrawables(drawable, null, null, null);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateDrawState(@NonNull TextPaint ds) {
|
||||
super.updateDrawState(ds);
|
||||
ds.setColor(getResources().getColor(R.color.text2));
|
||||
ds.setUnderlineText(false);
|
||||
}
|
||||
}, 0, v1, 0);
|
||||
|
||||
|
||||
// 只设置《隐私政策》和《用户协议》为可点击链接
|
||||
int start = str.indexOf("《");
|
||||
ssb.setSpan(new ClickableSpan() {
|
||||
@Override
|
||||
@@ -125,6 +100,7 @@ public class LoginActivity extends BaseActivity<ActivityLoginBinding> implements
|
||||
ds.setUnderlineText(false);
|
||||
}
|
||||
}, start, start + 6, 0);
|
||||
|
||||
int end = str.lastIndexOf("《");
|
||||
ssb.setSpan(new ClickableSpan() {
|
||||
@Override
|
||||
@@ -140,8 +116,21 @@ public class LoginActivity extends BaseActivity<ActivityLoginBinding> implements
|
||||
ds.setUnderlineText(false);
|
||||
}
|
||||
}, end, end + 6, 0);
|
||||
|
||||
// 先设置文本和链接
|
||||
mDataBinding.tvYs.setMovementMethod(LinkMovementMethod.getInstance());
|
||||
mDataBinding.tvYs.setText(ssb,TextView.BufferType.SPANNABLE);
|
||||
|
||||
// 设置整个TextView可点击来切换选中状态
|
||||
// 注意:LinkMovementMethod会优先处理链接点击,点击非链接区域才会触发此监听器
|
||||
mDataBinding.tvYs.setClickable(true);
|
||||
mDataBinding.tvYs.setFocusable(true);
|
||||
mDataBinding.tvYs.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
toggleAgreementCheck();
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
@@ -341,4 +330,21 @@ public class LoginActivity extends BaseActivity<ActivityLoginBinding> implements
|
||||
WebActivitytwo.runActivity(this, "", "https://wy.dou1.net/articlemobile/index/detail?article_id=19");
|
||||
}
|
||||
|
||||
/**
|
||||
* 切换协议选中状态
|
||||
*/
|
||||
private void toggleAgreementCheck() {
|
||||
if (mDataBinding.tvYs.isSelected()) {
|
||||
mDataBinding.tvYs.setSelected(false);
|
||||
Drawable drawable = getResources().getDrawable(R.mipmap.icon_publish_selected2);
|
||||
drawable.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight());
|
||||
mDataBinding.tvYs.setCompoundDrawables(drawable, null, null, null);
|
||||
} else {
|
||||
mDataBinding.tvYs.setSelected(true);
|
||||
Drawable drawable = getResources().getDrawable(R.mipmap.icon_publish_selected);
|
||||
drawable.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight());
|
||||
mDataBinding.tvYs.setCompoundDrawables(drawable, null, null, null);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user