Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move to next or previous monster #33

Open
wants to merge 18 commits into
base: develop
Choose a base branch
from

Conversation

Naoki-Hidaka
Copy link
Contributor

@Naoki-Hidaka Naoki-Hidaka commented May 23, 2020

Issue

#19

内容

詳細画面で左右にフリックすると前後のモンスターが表示されるように修正
ViewPager2を使用

関連URL

ViewPager2
https://developer.android.com/reference/androidx/viewpager2/widget/ViewPager2?hl=ja

ViewPager.OnPageChangeCallback
https://developer.android.com/reference/androidx/viewpager2/widget/ViewPager2.OnPageChangeCallback?hl=ja

@Naoki-Hidaka
Copy link
Contributor Author

手が空いてたのでViewPagerを実装しました〜!
もし自分で作成するようであれば参考程度になればと思います!

@uhooi uhooi linked an issue May 23, 2020 that may be closed by this pull request
@uhooi uhooi self-requested a review May 23, 2020 07:08
@uhooi
Copy link
Owner

uhooi commented May 23, 2020

@Naoki-Hidaka
ViewModelを共有してフラグメント間でデータをやりとりしているので、Safe Argsでモンスターを渡す必要はないと思います!

nav_graph.xml

-         <argument
-             android:name="monster"
-             app:argType=".modules.monsterlist.entities.MonsterItem" />

@uhooi
Copy link
Owner

uhooi commented May 25, 2020

@Naoki-Hidaka
Safe Argsは完全に使わなくなったので、削除して構いません!

/build.gradle

-         classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version"

/app/build.gradle

- apply plugin: 'androidx.navigation.safeargs.kotlin'

MonsterListFragment.kt

-                     findNavController().navigate(MonsterListFragmentDirections.actionListToDetail())
- 
+                     findNavController().navigate(R.id.action_list_to_detail)

@uhooi
Copy link
Owner

uhooi commented May 25, 2020

@Naoki-Hidaka

ViewModelを使ってフラグメント間で値を共有する実装は、もう少し公式ドキュメントに寄せてもいいと思いました!

MonsterListViewModel.kt

    // region Stored Instance Properties

    private val _selected = MutableLiveData<MonsterItem>()
    val selected: LiveData<MonsterItem>
        get() = _selected

    // endregion

    // region Other Internal Methods

    fun select(item: MonsterItem) {
        _selected.value = item
    }

    // endregion

ref: https://developer.android.com/topic/libraries/architecture/viewmodel?hl=ja#sharing

@uhooi
Copy link
Owner

uhooi commented May 25, 2020

あとは他のタスクを優先するのと、iOSと仕様を合わせたい(iOSはまだ詳細画面で前後のモンスターに移動できない)ため、レビュー&マージは当分先になります🙇‍♂️

@Naoki-Hidaka
Copy link
Contributor Author

これは完全に見落としていました、、!
後で修正しておきます!

@Naoki-Hidaka
Copy link
Contributor Author

レビュー&マージの件、承知いたしました〜
ゆっくりで大丈夫ですので!

@Naoki-Hidaka
Copy link
Contributor Author

一年半ぶりのコメント
iOSってViewPager相当のものって既にリリースされました?

@uhooi
Copy link
Owner

uhooi commented Feb 18, 2023

@Naoki-Hidaka

一年半ぶりのコメント iOSってViewPager相当のものって既にリリースされました?

1年半越しの返信です。
iOS ではまったく実装していませんが、Android 専用機能としてリリースしても問題ないです!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Move to the next or previous monster in MonsterDetail
2 participants