小编mus*_*off的帖子

带有 COUNT(*) AS 的房间 SQL 查询

我在 Android Room 中遇到 SQL 查询问题。我有如下查询

@Query("SELECT userId, COUNT(*) AS userCount FROM User " +
        "GROUP BY userId " +
        "ORDER BY userCount ASC")
List<UserCount> getUserAndCount();
Run Code Online (Sandbox Code Playgroud)

但 Android Studio 显示Cannot resolve symbol 'userCount'. 由于上面的语句在 SQL 中运行良好,您能告诉我代码中的问题以及如何AS在 Android Room 中使用吗?

sql android android-room

4
推荐指数
1
解决办法
2157
查看次数

RxJava Single 和 Room 错误处理问题

我遇到了有关 Room 和 RxJava Single 的空数据库返回的问题。我知道我的数据库是空的,所以我期望在触发时得到空返回

@Query("SELECT * FROM Times WHERE timestamp = :timestamp")
fun getTimes(timestamp: String): Single<Times>
Run Code Online (Sandbox Code Playgroud)

问题是当我如下调用这个函数时

timeDao.getTimes("1398332113")
       .observeOn(AndroidSchedulers.mainThread())
       .subscribeOn(Schedulers.io())
       .doOnError { Log.e("Single", "Returned null") }
       .doOnSuccess { result -> times = result}
       .subscribe()
Run Code Online (Sandbox Code Playgroud)

订阅者确实正在调用doOnError类似的方法

E/Single:返回空

但仍然返回异常并崩溃

W/System.err: io.reactivex.exceptions.OnErrorNotImplementedException: 查询返回空结果集: SELECT * FROM Times WHERE timestamp = ?

我在StackOverflow上看到了很多类似的问题,但找不到答案。我做错了什么?

android exception rx-java rx-android android-room

4
推荐指数
1
解决办法
4142
查看次数

enterAnim和popEnterAnim和exitAnim和popExitAnim有什么区别?

最新的导航体系结构组件中的动画标签之间有什么区别?我对enterAnim&感到困惑popEnterAnim。同样,exitAnimpopExitAnim

任何视觉上的扩展都受到欢迎。

android android-animation android-architecture-navigation

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

导航组件生命周期

我已经尝试了一段时间的导航组件,但是以某种方式没有得到当前导航组件生命周期背后的原因(或解释)。这里有一些需要澄清的地方。

1.片段到片段流

在导航组件中,每次访问(或重新访问)时都会重新创建每个片段(或说页面)。因此,当您位于A并转到时B,它会A被销毁,之后再返回时A(如按返回按钮)A是从拉伸中创建的。

在传统的“活动”模式中,当您返回时,A它会一直指向,onResume因为移至时它并没有被破坏B。是否有任何原因在导航组件中更改了此模式?

重新创建的问题是,当您拥有大量数据并且需要花费一些时间来重绘时,感觉就像应用程序冻结了一样。一个简单的主页就是一个例子(例如Facebook NewsFeed)。可以使用保留数据来处理数据,ViewModel但是再次绘制所有提要需要时间,并且将冻结。

休闲产生了另一个问题。假设这样的场景:A有一个Collapsing AppBarNestedScrollView。用户向下滚动并AppBar会折叠,然后用户移至其他页面B。当他返回时A,它将被重画并AppBar扩展。我不确定这是一个错误还是应该做些修复?因此,这里也欢迎任何解决方案。

2.活动娱乐

如果出于某些原因(例如方向改变)而重新创建活动,则将重新创建导航组件中的每个页面,直到当前目标为止。尽管onCreateonCreateView调用Fragment的方法,但我看不出在Activity休闲中创建Fragments的意义。任何解释都将受到欢迎。

android android-fragments android-jetpack android-architecture-navigation

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

如何制作BottomNavigationView 水平方向的图标和标签?

我想BottomNavigationView水平对齐的图标和标签。像这样的东西 在此处输入图片说明

默认方向为

在此处输入图片说明

我应该为菜单项制作自定义布局还是有任何简单的方法?

android bottomnavigationview android-bottom-nav-view

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

MotionLayout 中的默认状态是什么?

我找不到任何有关MotionScenein默认状态的文档MotionLayout

我有MotionScene像下面这样简单的

<?xml version="1.0" encoding="utf-8"?>
<MotionScene xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">


    <Transition
        app:constraintSetStart="@id/customStart"
        app:constraintSetEnd="@id/customEnd"
        app:duration="250" />


    <ConstraintSet android:id="@+id/customStart">
        <Constraint
            android:id="@id/someId"
            android:layout_width="0dp"
            android:layout_height="0dp" />
    </ConstraintSet>
    <ConstraintSet android:id="@+id/customEnd">
        <Constraint
            android:id="@id/someId"
            android:layout_width="0dp"
            android:layout_height="0dp"/>
    </ConstraintSet>


</MotionScene>
Run Code Online (Sandbox Code Playgroud)

MotionLayout那么第一次创建视图时如何设置默认状态呢?我如何手动设置customEnd为默认状态?

android android-motionlayout

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

Kotlin 中有属性排序约定吗?

对于 Kotlin 中的任何类,我通常都有一堆不同的属性。我想知道这些属性根据其类型的排序是否有任何转换。我使用的基本类型是

  • var fields
  • private var fields
  • lateinit var fields
  • private lateinit var fields
  • 以上所有内容均与val fields
  • lazy fields
  • private lazy fields
  • ETC。

常见的分类是在同一组中声明相同类型的属性。然后我所做的就是尝试先声明公共字段,然后声明私有字段。lazy我想知道,说和的第一个怎么样lateinit?或者之后会发生什么varprivate varlateinit varlazy val

好吧,我知道人们可以随心所欲地写,但我想知道是否有任何约定,根据属性的某些未指定级别列出属性?

android coding-style conventions kotlin

0
推荐指数
1
解决办法
1354
查看次数