UhooiPicBook-Android
UhooiPicBook-Android copied to clipboard
Move to next or previous monster
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
手が空いてたのでViewPagerを実装しました〜! もし自分で作成するようであれば参考程度になればと思います!
@Naoki-Hidaka ViewModelを共有してフラグメント間でデータをやりとりしているので、Safe Argsでモンスターを渡す必要はないと思います!
nav_graph.xml
- <argument
- android:name="monster"
- app:argType=".modules.monsterlist.entities.MonsterItem" />
@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)
@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
あとは他のタスクを優先するのと、iOSと仕様を合わせたい(iOSはまだ詳細画面で前後のモンスターに移動できない)ため、レビュー&マージは当分先になります🙇♂️
これは完全に見落としていました、、! 後で修正しておきます!
レビュー&マージの件、承知いたしました〜 ゆっくりで大丈夫ですので!
一年半ぶりのコメント iOSってViewPager相当のものって既にリリースされました?
@Naoki-Hidaka
一年半ぶりのコメント iOSってViewPager相当のものって既にリリースされました?
1年半越しの返信です。 iOS ではまったく実装していませんが、Android 専用機能としてリリースしても問題ないです!