2

現在、collapsingtoolbarlayout からタイトルを textview として取得しようとしています。前のアクティビティのリサイクラー ビュー内のアイテム間で共有要素遷移を実行したいと考えています。recyclerview のアイテムのタイトルは、collapsingtoolbarlayout のタイトルに変換する必要があります。

アクティビティ A には、そのリスト レイアウトの recyclerview があります。

<android.support.v7.widget.CardView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:id="@+id/row_container"
    android:layout_height="220dp"
    android:layout_width="match_parent"
    android:layout_margin="5dp"
    card_view:cardBackgroundColor="#282828"
    card_view:cardCornerRadius="3dp"
    android:foreground="?attr/selectableItemBackground"
    android:elevation="3dp"
    >
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="center_vertical"
        >
        <ImageView
            android:id="@+id/cover"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:elevation="2dp"
            />
        <ProgressBar
            android:id="@+id/progress"
            style="?android:attr/progressBarStyleSmall"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:visibility="invisible"/>
    </RelativeLayout>
    <LinearLayout
        android:id="@+id/item_top"
        android:layout_gravity="top"
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:elevation="3dp"
        android:padding="5dp"
        >
        <TextView
            android:id="@+id/title"
            android:textColor="#d3d3d3"
            android:textStyle="bold"
            android:maxLines="1"
            android:gravity="left|top"
            android:textSize="15sp"
            android:elevation="3dp"
            android:ellipsize="end"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            />
        <TextView
            android:id="@+id/text"
            android:textColor="#d3d3d3"
            android:elevation="3dp"
            android:gravity="left|top"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            />
    </LinearLayout>
</android.support.v7.widget.CardView>

@id/title は、このアクティビティ B の collapsingtoolbarlayout タイトルにアニメーション化する必要があります。

<android.support.design.widget.CoordinatorLayout       
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/rootlayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
>

<android.support.design.widget.AppBarLayout
    android:id="@+id/appBarLayout"
    android:layout_width="match_parent"
    android:layout_height="150dp"
    >
    <android.support.design.widget.CollapsingToolbarLayout
        android:id="@+id/collapsing_toolbar"
        android:layout_height="match_parent"
        android:layout_width="match_parent"
        app:layout_scrollFlags="scroll|exitUntilCollapsed"
        app:expandedTitleMarginStart="28dp"
        app:expandedTitleMarginEnd="20dp"
        app:contentScrim="?attr/colorPrimary"
        >

        <ImageView
            android:id="@+id/toolbar_image"
            android:visibility="invisible"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:scaleType="centerCrop"
            android:transitionName="toolbar_image"
            app:layout_collapseMode="parallax"
            />

        <android.support.v7.widget.Toolbar
            xmlns:android="http://schemas.android.com/apk/res/android"
            xmlns:app="http://schemas.android.com/apk/res-auto"
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            app:layout_collapseMode="pin"
            app:elevation="0dp"
            />
    </android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>

<android.support.v4.widget.NestedScrollView
    android:id="@+id/scrollView"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#252525"
    >
    ...
</android.support.v4.widget.NestedScrollView>
</android.support.design.widget.CoordinatorLayout>

助言がありますか?

4

3 に答える 3

0
  1. Android 開発者ページまたはオンラインのチュートリアルからインテントについてお読みください。

  2. 前のアクティビティで RecyclerView アイテムをクリックして、新しいアクティビティへのインテントを作成します。

  3. .putExtra()インテントを通じてアイテムの名前を文字列として送信するために使用します

  4. 新しいアクティビティonCreate()メソッドでは、次を使用します。

    .getStringExtra()

    文字列タイトル = インテント.getStringExtra("タイトル名");

    tv = (TextView)findViewById(R.id.textview);
    tv.setText(タイトル);

これは一般的なコードです。それに応じて変更します。

これがあなたが必要としていたものであることを願っています。

于 2016-01-02T08:34:52.553 に答える
0

あなたのアイテムが:

<RelativeLayout>
    <TextView
        ...
        android:transitionName="@string/transition_name"/>
</RelativeLayout>

および詳細アクティビティ:

<CoordinatorLayout>
     <AppBarLayout>
        <CollapsingToolbarLayout
            ...
            android:minHeight="100dp"
            app:contentScrim="?attr/colorPrimary"
            app:layout_scrollFlags="scroll|exitUntilCollapsed|snap">

            <Toolbar
            android:title=""
            android:gravity="top"
            android:minHeight="?attr/actionBarSize"
            app:layout_collapseMode="pin"
            app:popupTheme="@style/ThemeOverlay.AppCompat.Light">

                <TextView
                    ...
                    android:transitionName="@string/transition_name"/>

            </Toolbar>
        </CollpasingToolbarLayout>
    </AppBarLayout>

    <RecyclerView
        ...
        app:layout_behavior="@string/appbar_scrolling_view_behavior" />


</CoordinatorLayout>

ここでキャッチは、両方のアクティビティの TextView で共通のプロパティである transitionName 要素であり、両方の名前が同じである必要があります。XML の作業はこれですべてです。

ジャワでは、

Intent i = new Intent(MainActivity.this, DetailsActivity.class);

View sharedView = textview;
String transitionName = getString(R.string.transition_name);

ActivityOptions transitionActivityOptions = ActivityOptions.makeSceneTransitionAnimation(MainActivity.this, sharedView, transitionName);
startActivity(i, transitionActivityOptions.toBundle());

詳細については、次の最適なドキュメントを参照してください。

https://github.com/lgvalle/Material-Animations

于 2016-01-08T11:08:51.417 に答える
0

折りたたみツールバーコードを調べた限り、それはツールバーのラッパーであり、setTitle()それが持つ機能であり、 acollapsingtexthelperを実装する aのみを設定し、charsequenceそれを使用してレイアウトのビューに表示します。

textview私がコードで見た限りではありません。

于 2016-06-16T09:22:02.820 に答える