我们有一个linearlayout,其背景是部分舍入的(只有右侧),在确定的时刻我们需要将该背景迁移到非舍入的那个,所以我考虑使用TransitionDrawable,但由于某种原因这不起作用。这是我的档案:
R.drawable.bg_right_rounded:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/blue" />
<padding android:left="0dip" android:top="0dip" android:right="10dip" android:bottom="0dip" />
<corners android:topLeftRadius="0dp" android:topRightRadius="10dp"
android:bottomLeftRadius="0dp" android:bottomRightRadius="10dp"/>
</shape>
R.drawable.bg_blue:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/blue" />
</shape>
R.drawable.bg_transition:
<?xml version="1.0" encoding="utf-8"?>
<transition xmlns:android=
"http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/bg_right_rounded"/>
<item android:drawable="@drawable/bg_blue"/>
</transition>
然后布局就像:
<LinearLayout
android:id="@+id/vg_chat_typer_inner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:background="@drawable/bg_transition">
....
</LinearLayout>
然后在给定的时刻我们做:
TransitionDrawable transition = (TransitionDrawable) layout.getBackground();
transition.startTransition(1000);
如果我在正常情况下这样做它可以正常工作,但是当我将该linearlayout放在另一个线性布局中时,它会停止工作。它失败的情况如下:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:layout_alignParentBottom="true">
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="horizontal"
android:background="@drawable/bg_transition">
....
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_weight="0">
....
</LinearLayout>
</LinearLayout>
是因为体重吗?为什么不起作用?
提前致谢