TextInputLayout共享元素转换问题

这里我们去:两个共享元素转换的活动(Button)。 第二个Activity有一个带有提示的TextInputLayout

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:focusable="true" android:focusableInTouchMode="true" android:gravity="center_horizontal" android:orientation="vertical"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="GO" android:transitionName="test"/> <android.support.design.widget.TextInputLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="WTF?!"> <android.support.design.widget.TextInputEditText android:layout_width="match_parent" android:layout_height="wrap_content"/> </android.support.design.widget.TextInputLayout> </LinearLayout> 

第二个Activity的input转换被延迟以澄清问题: TextInputLayout的提示忽略转换animation并在转换开始后立即显示。 在animation结束时,您可以在提示下方看到正确的animationEditText背景(水平线)。 这是一个错误还是我错过了什么? 这是第二个Activity

 public class SecondActivity extends AppCompatActivity { public static void launch(Activity activity, View sharedElement) { Intent intent = new Intent(activity, SecondActivity.class); ActivityOptionsCompat options = ActivityOptionsCompat. makeSceneTransitionAnimation(activity, sharedElement, "test"); activity.startActivity(intent, options.toBundle()); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_second); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { getWindow().setEnterTransition(new Slide().setDuration(5000)); } } } 

编辑:这个bug可以通过添加背景第二个活动的布局“固定”。

没有背景 与背景

Solutions Collecting From Web of "TextInputLayout共享元素转换问题"

我认为它的TextInputLayout错误。 我删除它,我给了TextInputEditText的提示,并按预期工作。

  <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:focusable="true" android:focusableInTouchMode="true" android:gravity="center_horizontal" android:orientation="vertical"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="GO" android:transitionName="test" /> <android.support.design.widget.TextInputEditText android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="WTF?!" /> </LinearLayout> 

似乎是一个错误。 我提交了一个新的问题 。

您可以通过为第二个活动定义一个android:background来避免这种情况。