小编Fra*_*cis的帖子

具有初始值的MutableLiveData

如何用初始值初始化MutableLiveData?我正在寻找类似的东西:

val text = MutableLiveData<String>("initial value")

android kotlin android-livedata

33
推荐指数
4
解决办法
2万
查看次数

什么是位置的unicode特征?

我希望使用角色作为位置(例如在谷歌地图中) - 位置符号.

我想问一下是否有这样的unicode角色?

unicode location character

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

房间 - 检查最近是否提取数据

官方应用程序架构指南是存储库的一个例子.检查一个对象是否存在于数据库中,如果是新的:

// check if user was fetched recently
boolean userExists = userDao.hasUser(FRESH_TIMEOUT);
Run Code Online (Sandbox Code Playgroud)

任何想法如何为DAO 实现该功能(hasUser)?

android dao android-room android-architecture-components android-jetpack

8
推荐指数
2
解决办法
1372
查看次数

禁用在Navigation Architecture Component中将片段添加到backstack

假设我有4个片段:A,B,C,X,我可以用这种方式在它们之间导航:

... -> A -> C -> X    and ... -> B -> C -> X
Run Code Online (Sandbox Code Playgroud)

但是当我在片段X中调用时,mNavController.navigateUp()我想跳过片段C并转到片段A或B.我需要做什么?

UPD:我只需要导航架构组件的解决方案https://developer.android.com/topic/libraries/architecture/navigation/ 谢谢!

android android-architecture-components android-jetpack android-architecture-navigation

8
推荐指数
3
解决办法
5241
查看次数

忽略navigate()调用:FragmentManager已经保存了它的状态

我使用的是导航MainActivity,然后我开始SecondActivity(对结果).完成后SecondActivity我想继续导航MainActivity,但FragmentManager已经保存了他的状态.

Navigation.findNavController(view).navigate(R.id.action_next, bundle)我收到的日志消息:

Ignoring navigate() call: FragmentManager has already saved its state
Run Code Online (Sandbox Code Playgroud)

我如何继续导航?

android fragmentmanager android-architecture-components android-jetpack android-architecture-navigation

7
推荐指数
2
解决办法
992
查看次数

Android分页边界回调澄清

我已经在我的应用程序中集成了分页组件,它的工作非常好(几乎).我有数据库+网络模型.数据库最初有一些消耗的项目LivePagedListBuilder.我观察到这一点LiveData<PagedList<InboxEntity>>并最终将列表提供给PagedListAdapter#submitList(PagedList<T> pagedList),例如:

LiveData<PagedList<Entity>> entities;
PagedList.Config pagedListConfig =
            (new PagedList.Config.Builder()).setEnablePlaceholders(true)
                .setPrefetchDistance(5)
                .setEnablePlaceholders(false)
                .setPageSize(10)
                .setInitialLoadSizeHint(10)
                .build();

entities = new LivePagedListBuilder<>(DAO.getItemList(), pagedListConfig)
entities.observe(this, new Observer<PagedList<Entity>>() {
            @Override
            public void onChanged(@Nullable PagedList<Entity> inboxEntities) {
                inboxAdapter.submitList(inboxEntities);
                isFirstLoad = false;
            }
        });
Run Code Online (Sandbox Code Playgroud)

DAO#getItemList回报DataSource.Factory<Integer, Entity>.

我正在侦听边界回调并在到达分页列表末尾时触发网络呼叫.该调用再次填充数据库.

还有一件事.我已AdapterDataObserver在循环器视图上注册,因为如果在开头插入了一个项目,我将滚动到顶部位置:

RecyclerView.AdapterDataObserver adapterDataObserver = new RecyclerView.AdapterDataObserver() {
            @Override
            public void onItemRangeInserted(int positionStart, int itemCount) {

                if (positionStart == 0) {
                    layoutManager.scrollToPositionWithOffset(positionStart, 0);
                }
            }
        };
Run Code Online (Sandbox Code Playgroud)

我在这个模型中面临一个问题:

进行网络调用后,再次填充数据库并onChanged …

android android-recyclerview android-architecture-components android-jetpack android-paging

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

为单活动架构中的片段设置横向方向

如何Fragment 在Single Activity Architecture中仅实现一种锁定屏幕方向(Activity对于整个应用程序而言只有一种)?

是否有比指定每种方向更好的解决方案Fragment?我试图避免把activity?.requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED每个无关的东西放进去Fragment

android android-fragments android-orientation android-activity

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

Android Room返回Null作为Non-Null类型

我必须Dao返回简单的对象。如果对象不存在,则Room返回null,但是Android应用程序没有崩溃。另外,如果我将该值分配给非null变量,则应用程序中不会发生崩溃。

道:

@Query("SELECT * FROM users WHERE id LIKE :id LIMIT 1")
abstract fun getById(id: Long): User
Run Code Online (Sandbox Code Playgroud)

不崩溃的代码:

doAsync {
    val user: User = userDao.getById(999)   // user 999 not exist, userDao returns null
    uiThread {
        if (user == null) {
            Timber.d("user is $user")   // "user is null" in log
        } else {
            Timber.d("user is ${user.email}")
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我有两个问题:

  1. Room如何将Null值作为Non-Null变量返回?
  2. 将null分配给Non-Null变量的代码如何不会崩溃

crash android kotlin android-room kotlin-null-safety

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

Kotlin 协程压缩三个流程

zip功能可以压缩两个Flows。有什么东西可以将三个(或更多)压缩Flows在一起吗?

如果没有,你能帮我实现它的扩展功能吗?就像是:

flow.zip(flow2, flow3) { a, b, c -> 

}
Run Code Online (Sandbox Code Playgroud)

kotlin kotlin-coroutines kotlin-coroutines-flow

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

Android Mapbox SDK v10:归因位置;用户界面设置

如何调整 中的徽标和归属com.mapbox.mapboxsdk.maps.MapView?在较旧的 SDK v9 中,可以通过 XML 属性(或通过以编程方式更改 UiSettings)简单地设置 UiSettings。

mapbox:mapbox_uiAttributionMarginBottom="8dp"
mapbox:mapbox_uiAttributionMarginLeft="32dp"
Run Code Online (Sandbox Code Playgroud)

知道如何在 Mapbox SDK v10 上实现相同的效果吗?

android mapbox mapbox-android

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