小编can*_*wow的帖子

如何不使用androidX破坏片段

现在,当我像下面那样使用它时,我尝试使用androidX的导航和底部导航栏 supportFragmentManager = getSupportFragmentManager(); navHostFragment =(NavHostFragment)supportFragmentManager.findFragmentById(R.id.frag_nav); navController = navHostFragment.getNavController(); NavigationUI.setupWithNavController(navigation, navController);

我发现一个问题,每次切换底部的NavigationBar,都会重新创建该片段,目标片段中的所有网络任务都将重做,在AndroidX中切换时如何保持片段的状态?

navigation android androidx

5
推荐指数
1
解决办法
1416
查看次数

如何将viewmodel单例用于活动?

MyApp 需要在整个上下文中保存一个 User 对象?A、B、C 活动的 xml 使用这个 User 对象,当 A 编辑用户时,我想让 B 和 C 通知更改,如何处理 databinding、livedata 和 viewModel 的这个问题?

以前我让User.class扩展BaseObservable,但是POJO会很麻烦,不能为空,有时User可能为空,比如没有登录。现在我改为使用 LiveData,使 Pojo 变得简单而不扩展 BaseObservable,但是当 A 编辑、B 和 C 不起作用时,我想我需要 ABC 在内存中使用相同的 viewModel 实例,但这会导致多次触发 viewModel 的 onClear()。

android android-livedata

5
推荐指数
2
解决办法
4905
查看次数

如何优化firebase函数的响应速度

我使用基于 nodejs 6 和 firestore 的 firebase 函数,我这样的简单函数总是很慢。我还发现当我在函数中使用 set/add firestore 时,它​​总是慢可能 5-10 秒,这是 index.js,app 得到响应来自这个 queryUserDoc api。

`

const accountModel = require('./account');
exports.queryUserDoc = functions.https.onCall((data, context) => {
    const uid = context.auth.token.uid;
    return accountModel.getUserDocByUid(uid)
        .then(doc => {
            return JSON.stringify(({'errCode': ERROR_SUCCESS, 'data': doc.data()}));
        })
        .catch(err => {
            return JSON.stringify(({'errCode': err}));
        });
});
Run Code Online (Sandbox Code Playgroud)

` account.js 如下:

function getUserDocByUid(uid) {
    return db.collection(DB_COLLECTION_USER).doc(uid).get();
}
Run Code Online (Sandbox Code Playgroud)

当我的应用程序调用这个 api 时,我发现它很慢。控制台在下面 在此处输入图片说明

node.js firebase google-cloud-functions google-cloud-firestore

3
推荐指数
1
解决办法
1772
查看次数

我可以在 Kotlin 或 Java 中简化侦听器的实现吗?

binding.seekbarConstrast.setOnSeekBarChangeListener(object :
            SeekBar.OnSeekBarChangeListener {
            override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean){}

            override fun onStartTrackingTouch(seekBar: SeekBar?) {}

            override fun onStopTrackingTouch(seekBar: SeekBar?) {
                mainViewModel.adjustConstrast(
                    ProcessUtils.seek2param(
                        seekBar!!.max, 0f, 4f, seekBar.progress
                    )
                )
            }
        })
Run Code Online (Sandbox Code Playgroud)

这段代码在Android中,我讨厌下面的代码,太多的seekbars使无意义的代码变得非常长,我可以使用Kotlin或Java来简化侦听器的实现吗?像Android动画适配器一样,只实现我想要使用的东西。谢谢。

override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean){}
override fun onStartTrackingTouch(seekBar: SeekBar?) {}
Run Code Online (Sandbox Code Playgroud)

java android kotlin

2
推荐指数
1
解决办法
307
查看次数