GridViewから新しいアクティビティへの要素の移行を試みています。
以下のアイテムクリックイベントを取得しました、
mGridView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View v,
int position, long id) {
Intent intent;
switch(position){
case MENU_QNA:
intent = new Intent(MainActivity.this, QNAActivity.class);
startActivity(intent);
break;
case MENU_TRANSITION:
intent = new Intent(MainActivity.this, TransitionActivity.class);
//intent.putExtra(TransitionActivity.EXTRA_RES_ID, mGridView.get )
startActivity(intent,ActivityOptionsCompat.
makeSceneTransitionAnimation(MainActivity.this, v , "sample").toBundle());
break;
}
}
これが私のグリッドアイテムです
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/grid_holder"
android:layout_width="160dp"
android:layout_height="160dp"
android:orientation="vertical"
android:background="@color/grid_item_bg"
android:transitionName="sample"
android:padding="5dp">
<TextView
android:id="@+id/grid_item_text_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:gravity="center"
android:text="TextView"/>
</LinearLayout>
これは新しいアクティビティレイアウトです
<?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:background="@color/light_light_gray"
android:orientation="vertical" >
<ImageView
android:id="@+id/sample_img"
android:layout_width="match_parent"
android:layout_height="150dp"
android:layout_marginTop="30dp"
android:scaleType="fitCenter"
android:transitionName="sample"
android:src="@drawable/sample_img"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:gravity="center"
android:layout_gravity="center"
android:textSize="15dp"/>
</LinearLayout>
また、android:windowContentTransitionsでスタイルを追加します
<style name="NoActionBar" parent="@android:style/Theme.Holo.Light">
<item name="android:windowActionBar">false</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowContentTransitions">true</item>
<item name="android:windowAllowEnterTransitionOverlap">true</item>
<item name="android:windowAllowReturnTransitionOverlap">true</item>
</style>
しかし、要素の遷移は機能していません。私は何を間違えたか、見逃しましたか、どうすればよいですか?
Theme.Holo.Lightの子孫であるスタイルを使用していました。
<style name="NoActionBar" parent="@android:style/Theme.Holo.Light">
<item name="android:windowActionBar">false</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowContentTransitions">true</item>
</style>
ただし、以下のように変更すると(parent = "android:Theme.Material"を使用)、正常に動作するようになりました。
<style name="NoActionBar" parent="android:Theme.Material">
<item name="android:windowActionBar">false</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowContentTransitions">true</item>
</style>
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加