可疑的缩进:这是缩进的,但没有继续前面的表达式

Ass*_*han 7 data-binding android android-viewbinding

Android studio 向我展示了这个问题,代码行下方有红线

“可疑的缩进:这是缩进的,但没有继续前面的表达式(binding.cllInternetA...)(这里是前面的语句)”

显示问题时的 Android Studio 屏幕截图

override fun onResume() {
    super.onResume()
    //Clear search edit text
    binding.etSearch.text?.clear()

    lookUpNumberVM.isInternetLiveData.observe(viewLifecycleOwner) {
        if (it) {
            binding.cllMain.visibility = View.VISIBLE
            binding.cllInternetAvailability.visibility = View.GONE
        } else {
            binding.cllMain.visibility = View.GONE
            binding.cllInternetAvailability.visibility = View.VISIBLE
              makeSnackBar(binding.root,"No internet connection")
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我的代码在上面,您可以在附带问题的屏幕截图中看到问题。我会非常感谢你的努力。

小智 46

只需使用

ctrl+Alt+L
Run Code Online (Sandbox Code Playgroud)

一切都会好起来的。


Kro*_*mot 1

正如哈塔在他的评论中指出的那样,这可能是该行的附加意图(+2 个空格)makeSnackBar。请注意,您可以通过用分号结束代码语句来以一般方式避免此类问题(通常建议这样做)。这也提高了可读性。所以:

override fun onResume() {
    super.onResume();
    //Clear search edit text
    binding.etSearch.text?.clear();

    lookUpNumberVM.isInternetLiveData.observe(viewLifecycleOwner) {
        if (it) {
            binding.cllMain.visibility = View.VISIBLE;
            binding.cllInternetAvailability.visibility = View.GONE;
        } else {
            binding.cllMain.visibility = View.GONE;
            binding.cllInternetAvailability.visibility = View.VISIBLE;
            makeSnackBar(binding.root,"No internet connection");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

因此,意图将不再发挥作用(当然除了可读性,因此请继续使用意图),因为编译器现在拥有有关代码语句开始和结束位置的明确信息。