0
私は魔法の問題があります。 LayerDrawableのすべてのインスタンスが一緒に変更されます。 私はいくつかの典型的なビューを持っています。 。行って、私の仕事のように私は、私が問題だ複合ビューを 『「私が使用され、』決定します。私は1つのレイヤすべての<描画可能な変化に可視性を変更すると
をLayerDrawable一緒に変更する
public abstract class BaseContentExpanded<DATA> extends FrameLayout implements ExpandableLayout.AdditionalAnimators {
// same not imprtand code
@Override
public List<? extends Animator> getAnimators(final boolean togle) {
final Drawable showDrawable;
final Drawable hideDraawable;
final LayerDrawable layerDrawable = (LayerDrawable) vStateSelectionIcon.getDrawable();
if (togle) {
showDrawable = layerDrawable.getDrawable(0);
hideDraawable = layerDrawable.getDrawable(isCanExpand ? 1 : 2);
} else {
hideDraawable = layerDrawable.getDrawable(0);
showDrawable = layerDrawable.getDrawable(isCanExpand ? 1 : 2);
}
ValueAnimator expandAnimator = ValueAnimator.ofFloat(0f, 1f);
expandAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
Log.d(TAG, "getAnimators: " + layerDrawable);
float currentExpandAnimationValue = (float) animation.getAnimatedValue();
showDrawable.setAlpha((int) (255 * currentExpandAnimationValue));
hideDraawable.setAlpha((int) (255 * (1 - currentExpandAnimationValue)));
}
});
return Arrays.asList(expandAnimator);
}
}
とXMLのためのLayerDrawable
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
\t <item>
\t \t <bitmap android:src="@drawable/ic_close_light"/>
\t </item>
\t <item
\t \t android:drawable="@drawable/vector_ic_arrow_down_blue_stroke_24dp"/>
\t <item
\t \t android:drawable="@drawable/vector_ic_arrow_right_blue_24dp"/>
</layer-list>
レイアウト
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:divider="@drawable/line_divider"
android:orientation="vertical"
android:showDividers="middle"
>
<com.learnx.android.ui.view.filters.LocationFilter
android:id="@+id/location"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
<com.learnx.android.ui.view.filters.RatingFilter
android:id="@+id/rating"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
</LinearLayout>
私は任意の助けのために感謝するでしょう。