Я только что создал этот флажок с анимацией после этой статьи https://android.jlelse.eu/using-statelistanimators-to-create-instagram-like-animation-db2676c9391, и он не работает, когда я вызываю checkbox.setChecked (true) из моего кода Java!Я хочу это, когда я нажимаю на кнопку «Мне нравится»!Если dislikeButton был проверен как true, тогда он должен быть проверен как false.И когда я нажимаю кнопку «Мне не нравится», если «лайк» отмечен как «истина», то должен быть отмечен «ложь»Вот XML-код checkBox:
<CheckBox
android:layout_toLeftOf="@+id/save_btn"
android:id="@+id/dislike_btn"
android:layout_marginHorizontal="12dp"
android:background="@drawable/dislike_icon"
android:alpha="0.8"
android:layout_width="24dp"
android:layout_height="24dp"
android:clickable="true"
android:button="@null"
android:stateListAnimator="@animator/like_animation"
android:focusable="true"
/>
<CheckBox
android:layout_toLeftOf="@+id/dislike_btn"
android:id="@+id/like_btn"
android:layout_marginHorizontal="12dp"
android:background="@drawable/like_icon"
android:alpha="0.8"
android:layout_width="24dp"
android:layout_height="24dp"
android:clickable="true"
android:button="@null"
android:stateListAnimator="@animator/like_animation"
android:focusable="true"
/>
, а вот код like_icon и dislike_icon:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true"
android:drawable="@drawable/dislike_icon_red"/>
<item android:state_checked="false"
android:drawable="@drawable/dislike_icon_black"/>
</selector>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true"
android:drawable="@drawable/thumps_up_red"/>
<item android:state_checked="false"
android:drawable="@drawable/thumps_up_black"/>
</selector>
и код анимации:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true">
<set xmlns:android="http://schemas.android.com/apk/res/android">
<objectAnimator
android:duration="@android:integer/config_shortAnimTime"
android:propertyName="scaleX"
android:valueTo="1.525"
android:valueType="floatType" />
<objectAnimator
android:duration="@android:integer/config_shortAnimTime"
android:propertyName="scaleY"
android:valueTo="1.525"
android:valueType="floatType" />
<objectAnimator
android:duration="@android:integer/config_shortAnimTime"
android:propertyName="translationZ"
android:valueTo="4dp"
android:valueType="floatType" />
<objectAnimator
android:duration="@android:integer/config_shortAnimTime"
android:propertyName="scaleX"
android:valueTo="1.0"
android:startOffset="@android:integer/config_shortAnimTime"
android:valueType="floatType" />
<objectAnimator
android:duration="@android:integer/config_shortAnimTime"
android:propertyName="scaleY"
android:startOffset="@android:integer/config_shortAnimTime"
android:valueTo="1.0"
android:valueType="floatType" />
<objectAnimator
android:duration="@android:integer/config_shortAnimTime"
android:propertyName="translationZ"
android:startOffset="@android:integer/config_shortAnimTime"
android:valueTo="0dp"
android:valueType="floatType" />
</set>
</item>
<item>
<set>
<objectAnimator
android:duration="@android:integer/config_shortAnimTime"
android:propertyName="scaleX"
android:valueTo="1.525"
android:valueType="floatType" />
<objectAnimator
android:duration="@android:integer/config_shortAnimTime"
android:propertyName="scaleY"
android:valueTo="1.525"
android:valueType="floatType" />
<objectAnimator
android:duration="@android:integer/config_shortAnimTime"
android:propertyName="translationZ"
android:valueTo="4dp"
android:valueType="floatType" />
<objectAnimator
android:duration="@android:integer/config_shortAnimTime"
android:propertyName="scaleX"
android:valueTo="1.0"
android:startOffset="@android:integer/config_shortAnimTime"
android:valueType="floatType" />
<objectAnimator
android:duration="@android:integer/config_shortAnimTime"
android:propertyName="scaleY"
android:startOffset="@android:integer/config_shortAnimTime"
android:valueTo="1.0"
android:valueType="floatType" />
<objectAnimator
android:duration="@android:integer/config_shortAnimTime"
android:propertyName="translationZ"
android:startOffset="@android:integer/config_shortAnimTime"
android:valueTo="0dp"
android:valueType="floatType" />
</set>
</item>
</selector>
, и эточто я звоню из моего кода Java!
like.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
if (like.isChecked()){
Log.i("ELA","like check called");
dislike.setChecked(false);
}
}
});
dislike.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
if (dislike.isChecked()){
like.setChecked(false);
}
}
});
Я тоже попробовал .setOnClickListener!