小编Trầ*_*Tâm的帖子

forEach inside in Kachlin

在Kotlin中,如果要使用该元素forEach,可以使用it关键字.所以现在我想知道如果我有这样的forEach内部我应该怎么做forEach:

list.forEach {
    val parent = it
    it.forEach {
        // `it` now become the element of the parent.
    }
}
Run Code Online (Sandbox Code Playgroud)

我认为只为命名约定定义一个新变量是如此愚蠢.有这个问题的任何其他解决方案?

foreach kotlin

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

kotlin中普通类和数据类之间有什么区别

我试图在Kotlin Koans解决任务#6(DataClass).当我在代码中使用普通类时,测试用例失败了.

这是我的数据类代码:

data class Person(val name: String, val age: Int)

fun task6(): List<Person> {
    return listOf(Person("Alice", 29), Person("Bob", 31))
}
Run Code Online (Sandbox Code Playgroud)

这是数据类的结果:

[Person(name=Alice, age=29), Person(name=Bob, age=31)]
Run Code Online (Sandbox Code Playgroud)

这是我正常类的代码:

class Person(val name: String, val age: Int)

fun task6(): List<Person> {
    return listOf(Person("Alice", 29), Person("Bob", 31))
}
Run Code Online (Sandbox Code Playgroud)

这是正常类的结果:

[i_introduction._6_Data_Classes.Person@4f47d241, i_introduction._6_Data_Classes.Person@4c3e4790]
Run Code Online (Sandbox Code Playgroud)

这是否意味着Kotlin中的普通类和数据类之间存在差异.如果是,那是什么?

更新:

谢谢@Mallow,你是对的.这样可行:

class Person(val name: String, val age: Int) {
    override fun toString(): String {
        return "Person(name=$name, age=$age)"
    }
}

fun task6(): List<Person> {
    return listOf(Person("Alice", 29), Person("Bob", 31)) …
Run Code Online (Sandbox Code Playgroud)

kotlin

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

如何在 Flutter 中触摸空白区域时使 GestureDetector 也能工作

Text在一个GestureDetector. 在onTap当我触摸回调只通知Text而不是空的空间里面我Container。如何让这个通知就像我触摸按钮一样?

+------------------------------------------------+
| Very very very long long ?ng long text view   |
| Short ?xt                   ?                |
+------------------------------------------------+
Run Code Online (Sandbox Code Playgroud)
  • ?:打印Tapped
  • ?: 什么都没有发生。

我的源代码

ListView.separated(
  itemCount: _listModel.length,
  padding: EdgeInsets.only(left: NOTIFICATION_LEFT_SPACE),
  separatorBuilder: (context, index) => Divider(),
  itemBuilder: (BuildContext context, int index) => GestureDetector(
    child: Container(
      child: Hero(
        tag: _listModel[index].title,
        child: Column(
          crossAxisAlignment: CrossAxisAlignment.start,
          children: <Widget>[
            Text('Very very very long long long long text view'),
            SizedBox(height: 10),
            Text('Short text') …
Run Code Online (Sandbox Code Playgroud)

flutter flutter-layout

16
推荐指数
1
解决办法
2438
查看次数

Flutter 中 pushReplacementNamed 和 popAndPushNamed 的区别是什么?

中的NavigatorStateFlutter#navigator.dart有 2 个具有类似行为的方法。FlutterpushReplacementNamedpopAndPushNamedFlutter 有什么区别?

pushReplacementNamed

通过推送名为 [routeName] 的路线替换导航器的当前路线,然后在新路线完成动画处理后处理之前的路线。

popAndPushNamed

从导航器弹出当前路线并在其位置推送命名路线。

navigation flutter

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

关闭/隐藏活动状态onStop上的Android软键盘

我的布局中有一个EditText和一个Button.在编辑字段中写入并单击此按钮后 go back my fragment,我想隐藏虚拟键盘.我认为有一个简单的,但我尝试了某种方式,它不起作用:

该代码显示了如何Button工作:

private void onButtonClicked(){
    getActivity().getSupportFragmentManager().popBackStack();
}
Run Code Online (Sandbox Code Playgroud)

某些解决方案的代码,但这无济于事.这个代码我用,hideSoftInputFromWindow但是当我调用'EditText.getWindowToken()'时,它不会隐藏软键盘(我也将0值更改为InputMethodManager.HIDE_IMPLICIT_ONLY或InputMethodManager.HIDE_NOT_ALWAYS并且它不起作用):

EditText myEditText = (EditText) findViewById(R.id.myEditText);  
InputMethodManager imm = (InputMethodManager)getSystemService(
      Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0);
Run Code Online (Sandbox Code Playgroud)

使用此代码,在此应用程序的另一个屏幕中,它可以工作.这个屏幕是一个活动所以我认为问题是片段的问题.

我的片段代码:

public class ChangeEmailFragment extends BaseFragment {
    private TextView mTxtCurrentEmail;
    private EditText mEdtNewEmail;
    private EditText mEdtPassword;
    private TextView mTxtSubmit;

    @Override
    public void onStop() {
        super.onStop();
        if (progressDialog != null && progressDialog.isShowing())
            progressDialog.dismiss();
        if (dialog != null && dialog.isShowing())
            dialog.dismiss();
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup …
Run Code Online (Sandbox Code Playgroud)

android android-softkeyboard android-input-method

8
推荐指数
1
解决办法
3699
查看次数

[Android]如何获得软键盘高度.(建议除外)

首先,这不是一个简单的问题,比如这个任务这个任务.

我必须在我的项目中获得软键盘高度.我曾经获得设备屏幕高度,并通过应用程序根视图高度减去它.但是,它正常工作,直到我的测试使用键盘建议.不幸的是,在这种情况下,我的解决方案并不正确.我的数字总是比软键盘高度大.我试图谷歌但失败了.

这是我的照片: 在此输入图像描述

keyboard android

5
推荐指数
0
解决办法
1254
查看次数

如何使用Android FirebaseUI从Firebase分页查询

我有一个使用Firebase Android SDK的服务器聊天项目.3个月后,我的应用程序有很多用户,他们互相聊天很多.从Firebase加载所有聊天列表需要很长时间.所以现在,我想知道如何使用Android SDK从Firebase分页查询.

我研究了这个链接,找到了这个问题的查询命令但是失败了.我只查询第一行或最后一行的行数.我无法从Firebase中的随机定位查询.示例使用skiptake键查询.

如果您有任何相关文件.请告诉我.谢谢你提前.

android firebase firebase-realtime-database

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

为什么在 StatefulWidget 中没有定义 build 方法?

我目前正在学习 Flutter。我试图深入了解 Flutter Widget 的生命周期,我想知道为什么StatefulWidget会这样写:

class Example extends StatefulWidget {
  @override
  _ExampleState createState() => _ExampleState();
}

class _ExampleState extends State<Example> {
  // initState
  // setState
  // ...
  @override
  Widget build(BuildContext build) {
    ...
  }
}
Run Code Online (Sandbox Code Playgroud)

但不是 :

class Example extends StatefulWidget {
  // initState
  // setState
  // ...
  @override
  Widget build(BuildContext build) {
    ...
  }
}
Run Code Online (Sandbox Code Playgroud)

我认为后者使来源变得简单。但我不知道他们为什么使用以前的风格?

flutter statefulwidget

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

有什么作用。在码头意味着什么?它是指映像的当前工作目录还是本地计算机?

我对这是否.意味着该图像的当前目录的缩写或它是本地计算机上的当前工作目录的缩写感到困惑。还是.大多数控制台命令中的含义相同,例如本质上是在当前目录中选择全部。

COPY somecode.java .

#copy the rest of the code

COPY . .
Run Code Online (Sandbox Code Playgroud)

.似乎也意味着在当前目录中找到docker文件。

docker build -t image-tag .
Run Code Online (Sandbox Code Playgroud)

docker

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

如何让Kotlin中的print方法和Java一样效果

我在 Kotlin 中尝试了下面的这段代码。该print方法缓存输入数据,直到我调用该println方法。

>>> print(1)
>>> print(2)
>>> System.out.print(3)
>>> System.out.print(4)
>>> println(5)
12345
Run Code Online (Sandbox Code Playgroud)

我想像Java一样按数字将数字打印为序列号。我怎么能在 Kotlin 中做到这一点?

更新:也许有人误解了我的问题。

我希望该print方法立即打印输入数据而不是等待println方法。

println kotlin

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

如何通过println(i for i in 1..10)缩短代码,就像Kotlin中的Python一样

我现在正在学习Kotlin.

当我阅读Kotlin文档时,它写道我有ranges像Python 这样的技术(例如:1..10).但是,我尝试下面的代码,但失败了.

>>> print(i for i in 1..10)
...
error: expecting ')'
print(i for i in 1..10)
        ^
error: unexpected tokens (use ';' to separate expressions on the same line)
print(i for i in 1..10)
                    ^
Run Code Online (Sandbox Code Playgroud)

有没有办法通过使用i for i in 1..10类似Python 来缩短此代码.

iterator kotlin

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