片段中的共享元素不起作用,textview - >的EditText

时间:2015-09-11 07:06:07

标签: android android-layout android-fragments

我有2个片段,想要在它们之间进行共享元素转换。 具有适配器的recyclerview中的项目包含一个textview,应该在下一个片段中为edittext设置动画。 recyclerview也是一个片段。

这是我的代码:

来自适配器的viewholder的项目布局:

<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/row_container"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:background="#FAFAFA"
android:elevation="0dp"
>
<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="?android:attr/selectableItemBackground"
    android:elevation="0dp"
    >
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginBottom="5dp"
        android:elevation="0dp"
        >


        <RelativeLayout
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:background="@null"
            android:elevation="0dp"
            android:layout_centerVertical="true"
            >

            <ImageButton
                android:id="@+id/notify_btn"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:src="@drawable/ic_bookmark_black_24dp"
                android:background="@null"
                android:tint="#9E9E9E"
                android:layout_centerInParent="true"
                />

        </RelativeLayout>


        <TextView
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="40dp"
            android:layout_marginRight="20dp"
            android:textSize="18sp"
            android:textStyle="bold"
            android:textColor="@android:color/black"
            android:layout_alignParentTop="true"
            android:maxLines="1"
            android:ellipsize="end"

            android:transitionName="title"
            />

        <TextView
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/text"
            android:layout_below="@id/title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="40dp"
            android:layout_marginRight="20dp"
            android:textSize="15sp"
            android:maxLines="2"
            android:layout_alignParentBottom="true"
            android:textColor="@android:color/black"
            android:ellipsize="end"

            android:transitionName="text"
            />

    </RelativeLayout>

    <ImageView
        android:id="@+id/fav"
        android:layout_width="15dp"
        android:layout_height="15dp"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:layout_margin="5dp"
        android:visibility="invisible"
        android:src="@drawable/ic_star_black_24dp"
        />

</RelativeLayout>

MyAdapter类,项目行点击:

row.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                Fragment frag = new Fragment_Notice();

                int tin_title = Integer.parseInt(String.valueOf(title.getText().length()));
                if ( (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) &&
                    ( SharedPrefHelper.getBool("shared_transition") == true) &&
                        (  tin_title >= 1 ) ) {

                    //Exit transition for old fragment
                    frag.setSharedElementReturnTransition(TransitionInflater.from(context).inflateTransition(R.transition.title_transform));
                    frag.setExitTransition(TransitionInflater.from(context).inflateTransition(android.R.transition.explode));

                    //Enter transition for new fragment
                    frag.setSharedElementEnterTransition(TransitionInflater.from(context).inflateTransition(R.transition.title_transform));
                    frag.setEnterTransition(TransitionInflater.from(context).inflateTransition(android.R.transition.explode));

                    ft.replace(R.id.container, frag, "NoticeTag")
                            .addToBackStack(null)
                            .addSharedElement(title, "title")
                            .commit();
                } else {
                    int open = R.anim.abc_fade_in;
                    int close = R.anim.abc_fade_out;

                    ft.setCustomAnimations(open, close, open, close)
                            .replace(R.id.container, frag, "NoticeTag")
                            .addToBackStack(null)
                            .commit();
                }
            }
        });

最终片段的布局:

<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/rootLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="invisible"
>

<ScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_marginLeft="15dp"
    android:layout_marginRight="10dp"
    android:padding="10dp"
    >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        >

        <EditText
            android:id="@+id/title"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textStyle="bold"
            android:nextFocusForward="@id/text"
            android:imeOptions="actionNext"
            android:singleLine="true"
            android:ems="16"
            android:hint="@string/title"
            android:textColor="#212121"
            android:textColorHint="#757575"
            android:background="@null"
            android:layout_marginTop="5dp"
            android:layout_marginBottom="5dp"
            android:scrollbars="horizontal"

            android:transitionName="title"
            />

        <EditText
            android:id="@+id/text"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="@string/text"
            android:textColor="#212121"
            android:textColorHint="#757575"
            android:background="@null"
            android:layout_marginLeft="2dp"

            android:transitionName="text"
            />

        <View
            android:id="@+id/line"
            android:layout_width="match_parent"
            android:layout_height="1dp"
            android:layout_marginTop="15dp"
            android:layout_marginBottom="15dp"
            android:elevation="0dp"
            android:background="@color/grey"
            />

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="10dp"
            >

            <ImageButton
                android:id="@+id/fav"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/ic_star_black_24dp"
                android:layout_alignParentRight="true"
                android:layout_centerVertical="true"
                android:padding="5dp"
                android:background="?android:attr/selectableItemBackground"
                android:tint="#9E9E9E"
                />


        </RelativeLayout>
    </LinearLayout>
</ScrollView>

<android.support.design.widget.CoordinatorLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:gravity="top"
    android:id="@+id/snackbar">
</android.support.design.widget.CoordinatorLayout>

textview不会对edittext进行动画处理。 出现爆炸动画。 在动画之间动画是有效的。 有任何建议如何解决?

0 个答案:

没有答案