我正在使用一些动画显示和隐藏特定动作的视图,我使用LayoutTransition并且它似乎工作正常除了一件事,当动画进行时,一些TextViews的背景改变并重置为默认的白色背景! !
以下是我在隐藏/显示后应用动画的代码。
mRightTransitioner = new LayoutTransition();
mRightTransitioner.setDuration(1000);
vg_rightContainer.setLayoutTransition(mRightTransitioner);
编辑:即使没有动画我试过,同样的问题,背景重置一次视图的位置变化
编辑:这是我如何在XML中声明视图
<LinearLayout
android:id="@+id/ll_req_reasonwrapper"
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_marginTop="10dp"
android:baselineAligned="false"
android:gravity="right"
android:orientation="horizontal"
android:visibility="gone" >
<EditText
android:id="@+id/et_req_reasons"
android:layout_width="400dp"
android:layout_height="match_parent"
android:background="@drawable/comments_textbox"
android:gravity="right|center_vertical"
android:inputType="text"
android:paddingRight="8dp" />
<TextView
android:layout_width="100dp"
android:layout_height="match_parent"
android:gravity="center_vertical"
android:text="@string/str_req_preasons" />
</LinearLayout>
<LinearLayout
android:id="@+id/ll_req_timewrapper"
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_marginBottom="10dp"
android:layout_marginTop="10dp"
android:baselineAligned="false"
android:gravity="right"
android:orientation="horizontal"
android:visibility="gone" >
<LinearLayout
android:id="@+id/ll_req_endtimewrapper"
android:layout_width="wrap_content"
android:layout_height="match_parent" >
<TextView
android:id="@+id/ftv_req_endtime"
android:layout_width="100dp"
android:layout_height="match_parent"
android:background="@drawable/comments_textbox"
android:freezesText="true"
android:gravity="right|center_vertical"
android:inputType="numberDecimal"
android:paddingRight="8dp" />
<TextView
android:layout_width="100dp"
android:layout_height="match_parent"
android:gravity="center_vertical"
android:text="@string/str_req_endtime" />
</LinearLayout>
<LinearLayout
android:id="@+id/ll_req_starttimewrapper"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginLeft="50dp" >
<TextView
android:id="@+id/ftv_req_starttime"
android:layout_width="100dp"
android:layout_height="match_parent"
android:background="@drawable/comments_textbox"
android:freezesText="true"
android:gravity="right|center_vertical"
android:inputType="numberDecimal"
android:paddingRight="8dp" />
<TextView
android:layout_width="100dp"
android:layout_height="match_parent"
android:gravity="center_vertical"
android:text="@string/str_req_starttime" />
</LinearLayout>
</LinearLayout>
例如:如果我隐藏&#39; ll_req_reasonwrapper&#39;,那么LinearLayout&lt; ll_req_timewrapper&#39;向上移动,然后textViews的背景类似于&lt; ftv_req_starttime&#39;变得白皙!!
请帮忙。
答案 0 :(得分:0)
编辑答案: 如果您正在使用线性布局,那么如果未显示子项,则不会将其布局,也不会成为测量的一部分(如图所示)。我建议使用RelativeLayout。
你可以尝试
android:background="@null"
按钮。如果你正在使用一些自定义类按钮,那么添加
.setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
了解这些具体观点。
答案 1 :(得分:0)
需要更多代码。禁用LayoutTransition无法解决您的问题,这意味着动画不是问题。
如何重新实现子视图或填充视图。您是使用setVisibility(View.GONE)删除视图,然后使用setVisibility(View.VISIBLE)将其设置回来
OR
您是删除childAt(i)然后动态添加自定义视图
对不起,我无法添加评论,因为我没有这方面的声誉,但我想如果您发布更多代码,我可以回答您的问题。