修复部分bug

This commit is contained in:
renjianbo
2026-01-08 17:50:27 +08:00
parent 8cf130979b
commit 0c12923995
3 changed files with 45 additions and 36 deletions

View File

@@ -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);
}
}
}