小编pst*_*cki的帖子

RecyclerView不滚动并显示所有项目

我在ScrollView中有一个RecyclerView(和一些其他视图).目前,RecyclerView的布局非常小(它显示了它包含的5个中的2个项目)并且它独立于ScrollView滚动,这显然不是很好的用户体验.我想让RecyclerView不滚动和扩展,以便所有项目都可见.

(我知道在这种情况下使用RecyclerView是愚蠢的.我只是这样做,因为应用程序中的其他地方我需要一个普通的RecyclerView滚动等但是同样的内容,我不想重复代码).

android android-recyclerview

37
推荐指数
5
解决办法
4万
查看次数

Android:如何在onBind()之前强制调用onStartCommand()?

我正在尝试创建一个可绑定的粘性服务(我需要在后台运行服务所持有的某些数据的异步操作).为此,我需要确保onBind始终在onStartCommand之后运行.有什么方法可以保证吗?

android android-service

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

Dagger 2:从多个子组件注入活动

本教程展示了如何使用Dagger 2将依赖项注入活动AndroidInjectionModule- 一个非常简单的例子.我的用例有点复杂:

  • App extends Application implements HasDispatchingActivityInjector,
  • ActivityOne使用的初始化ActivityModule.使用此活动,DepOne创建依赖项,
  • ActivityTwo具有在DepTwo没有预先存在的情况下无法正确初始化的依赖项DepOne.

我想出的解决方案是:

  • 创建一个AppComponent作为应用程序的主要组件,
  • 创建一个ComponentTwoas的子组件AppComponent.在运行时添加它,一旦DepOne可用,并DepTwo在其中提供,
  • 注入ActivityTwo内部ComponentTwo.

但是,这需要,ActivityModule目前看起来像这样:

@Module(subcomponents = {
    ActivityOneSubcomponent.class,
    ActivityTwoSubcomponent.class
})
public abstract class ActivityModule {
    @Binds
    @IntoMap
    @ActivityKey(ActivityOne.class)
    abstract AndroidInjector.Factory<? extends Activity> bindLoginActivityInjectorFactory(ActivityOneSubcomponent.Builder builder);

    @Binds
    @IntoMap
    @ActivityKey(ActivityTwo.class)
    abstract AndroidInjector.Factory<? extends Activity> bindWorldActivityInjectorFactory(ActivityTwoSubcomponent.Builder builder);
}
Run Code Online (Sandbox Code Playgroud)

被分成两个不同的模块,一个用于ActivityOne绑定AppComponent,另一个用于 …

android dependency-injection dagger-2

6
推荐指数
1
解决办法
1716
查看次数

Android测试项目的通用实用程序类

我将Android项目的测试保存在四个单独的项目中:分别进行单元测试和功能测试,以及将需要本机Android环境的测试(活动/服务测试,功能性Robotium测试)与我认为可以在人工环境(Robolectric)中安全运行的测试分开的测试+一些非严格Android库的验收测试)。但是,我需要在一些项目之间共享一些实用程序类(主要是我的意思是Android测试工具包,但是如果我也可以在Robolectric下使用它们,那就太好了)。

我应该如何解决这个问题?我应该使用存根android.jar作为依赖项来创建Android库或简单的JAR吗?我已经尝试了两种解决方案,但都遇到了奇怪的错误,例如NoClassDefFoundError支持库IllegalAccessError: Class ref in pre-verified class resolved to unexpected implementation中的类或测试项目中的类。

android android-library android-testing

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

Android 的 TableLayout 中每一行的样式都相同

Android XML 中是否有任何方法可以一次为 TableLayout 中的所有行设置相同的样式(或样式参数,如填充)?

我想避免做的是:

<TableLayout>
    <TableRow style="@style/MyStyle">...</TableRow>
    <TableRow style="@style/MyStyle">...</TableRow>
    <TableRow style="@style/MyStyle">...</TableRow>
    <TableRow style="@style/MyStyle">...</TableRow>
    ...
</TableLayout>
Run Code Online (Sandbox Code Playgroud)

android android-layout

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

Kubernetes - 相同的作业,不同的参数

在 Kubernetes 上运行可配置数量的相同作业但为每个作业提供不同参数(例如作业编号)的最简单方法是什么?

kubernetes

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

Mapbox Android SDK 4.0.0+ - 如何在给定位置设置缩放和中心地图?

我在Android应用程序中使用Mapbox Android SDK v4.0.0,在某些时候需要在给定位置和给定缩放级别"冻结"MapView.

在我看来,API中没有方法可以:

  1. 为地图设置特定的缩放级别,
  2. 将地图置于给定位置的中心.

怎么做到这一点?

android mapbox

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

使用JUnit 5运行Groovy测试用例

也许这很简单,但是我在网上找不到任何示例:

我想使用JUnit 5运行作为Groovy类实现的单元测试。我当前的设置似乎启动了JUnit 5,但是无法检测到测试用例。IntelliJ可以识别测试,但无法运行。如果添加Java单元测试,则可以正确启动。

这是我现在所拥有的:

项目结构

src
  main
    groovy
      # production code
  test
    groovy
      UnitTest.groovy
build.gradle
...
Run Code Online (Sandbox Code Playgroud)

build.gradle

plugins {
    id 'groovy'
}

dependencies {
    compile localGroovy()

    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.1.1'
    testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.1.1'
}

test {
    useJUnitPlatform()
}
Run Code Online (Sandbox Code Playgroud)

单元测试

import org.junit.jupiter.api.Test

class UnitTest {

    @Test
    def shouldDoStuff() {
        throw new RuntimeException()
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在使用Gradle 4.10。

有任何想法吗?

groovy junit5

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