小编Kun*_*nte的帖子

科特林协同程序.启动{fun}和launch {suspend fun}之间的区别

执行之间有什么不同吗?

launch {
    function1()
}
fun function1(){
    DoSomething...
}
Run Code Online (Sandbox Code Playgroud)

launch {
   function2()
}
suspend fun function2(){
   DoSomething...
}
Run Code Online (Sandbox Code Playgroud)

suspend kotlin kotlinx.coroutines

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

Android映射填充和地图边界

我正在使用android maps v2,我正在使用填充来移动地图控件和google的徽标:

       mMap.setPadding(0, 0, 0, padding_in_px);
Run Code Online (Sandbox Code Playgroud)

另一方面,我需要知道地图可见部分的限制:

       LatLngBounds bounds = mMap.getProjection().getVisibleRegion().latLngBounds;
Run Code Online (Sandbox Code Playgroud)

问题是,如果我填充填充,该函数不会返回地图上可见区域的边界,而只返回可见区域的边界减去填充区域.

当地图有填充mMap.getProjection()时,有没有办法.getVisibleRegion()返回实际的可见边界而不是地图边界 - 填充边界?

谢谢

android google-maps

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

将侦听器对象作为函数参数传递给kotlin

我正在尝试将一个侦听器从一个动作传递给一个类(一个适配器).

在java中(来自Action的代码):

  private void setListeners() {
    adapterRecyclerView.setListener(
            new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    SomeCodehere....
                }
            });
}
Run Code Online (Sandbox Code Playgroud)

(来自适配器的代码)

public void setListener(View.OnClickListener listener) {
    this.listener = listener;
}
Run Code Online (Sandbox Code Playgroud)

有用.

现在我正试图转向kotlin.我首先翻译动作(将动作翻译为kotlin):

    private fun setListeners() {
    // !! is not fine i know
    adapterRecyclerView!!.setListener  { v  ->
                          SomeCodehere....
    }
}
Run Code Online (Sandbox Code Playgroud)

此时仍然有效.适配器的代码仍然在java和kotlin中的类的代码.现在我将适配器翻译为kotlin:

fun setListener(listener: View.OnClickListener) {
    this.listener = listener 
}
Run Code Online (Sandbox Code Playgroud)

现在它不起作用.Action没有编译.

错误:无法推断此参数"v"的类型.必需的View.OnClickListener.发现(???)单位.

我该怎么做演员?为什么将参数从kotlin传递给java工作,从kotlin传递给kotlin它不是?

kotlin kotlin-interop

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