Re: [问题]为何BottomSheet和Fragment之间传资料?-2

楼主: gcobc12632 (Ted)   2021-03-29 19:01:37
简单写了一下 应该用一般的 interface 就能达成了
不过上篇推文有提到我没看过的 ViewModel
感觉颇有趣 改天也来研究看看 说不定之后用得到
以下正文:
activity_main.xml
https://i.imgur.com/pJZGqeo.png
MainActivity.java
https://i.imgur.com/B1B8xeh.png
MyPagerAdapter.java
https://i.imgur.com/xga1azl.png
这就一般的初始化 TabLayout + ViewPager 的流程而已
-
my_botton_sheet_dialog_fragment.xml
https://i.imgur.com/0JIGdTy.png
MyBottomSheetDialogFragment.java
https://i.imgur.com/gafsVsl.png
一般初始化 BottomSheetDialogFragment + interface 的流程
接口是一个 Button + SeekBar 可自行调整
并且在 Button 加上回传 SeekBar 的结果并关闭 BottomSheetDialogFragment
-
fragment1.xml
https://i.imgur.com/g2uBFJG.png
Fragment1.java
https://i.imgur.com/YJBn7Ml.png
在 Fragment1 内做了一个开启 BottomSheetDialogFragment 的 Button
跟一个显示回传结果的 TextView
按下 Button 会初始化 BottomSheetDialogFragment 并显示
setListener 初始化 BottomSheetDialogFragment 内的 interface
并将回传结果显示在 TextView 上
结果:
起始页
https://i.imgur.com/5YqYGuO.png
按下 Button 显示 BottomSheetDialogFragment
https://i.imgur.com/FGxSgnO.png
按下 Button 回传结果到 Fragment 内
https://i.imgur.com/V3qDEF2.png
其他几页都差不多 换个样式而已
不知道这是不是你想要的结果
作者: MAXQb   2021-03-31 17:59:00
感谢,我是希望结果能呈现在按下去的按钮上面ex:饮料大小(按钮1)->bottomsheet->饮料大小为中杯(按钮1变更文字),之后按钮2选完后,按钮1的结果不变interface和binding我没有研究过,这是Kotlin的写法吗?感觉到自己基础不足...
作者: robber1234 (超痛恨嘴炮)   2021-03-31 18:25:00
建议直接用MVVM以 shared viewmodel 方式处理
楼主: gcobc12632 (Ted)   2021-03-31 20:00:00
你说的效果就只是换个方式呈现而已 搞懂后就不难binding可以想成是新的findViewById就好至于interface也是原本android旧有的
作者: MAXQb   2021-03-31 22:34:00
了解,看了一下binding好像是基于MVVM方式而做的分离interface当初我看java书没有这个viewmodel还真的不好懂的说
作者: corkcork (thaibar)   2021-04-01 00:57:00
回文简单讲个shared viewModel,因为fragments是依附在activity之下的,因此可以做一个lifecycle跟着activity的viewModel,并将其分享给依附于它的fragments,同时fragment可以有自己的viewModel另外fragmemt Manager跟navigation也都可以传值,楼主用interface的方法也行,方法很多,可以多了解排版好丑@@
作者: MAXQb   2021-04-02 21:48:00
谢谢corkcork的说明,我会再试看看
作者: zipigi   2021-04-04 22:39:00
我很意外,都2021年了很难想象有人android 开发没用viewModel的
作者: ohmylove347 (米特巴爾)   2021-04-06 04:38:00
初学啊,初学不都MVC吗?
作者: robber1234 (超痛恨嘴炮)   2021-04-06 09:41:00
初学应该只有V 科科

Links booklink

Contact Us: admin [ a t ] ucptt.com