小编Dun*_* Ta的帖子

变量名之前的Underscore"_"对于Flutter意味着什么

参考Flutter教程,我遇到了一个下划线,_.

我知道在Java中,它_被用作私有变量的命名约定.

  1. 它也适用于Flutter吗?注意到Flutter中没有公共/受保护.
  2. 请问_真的是私有的(不可访问,其他类),或者是它只是一个命名约定?

变量

 class RandomWordsState extends State<RandomWords> {
  final List<WordPair> _suggestions = <WordPair>[];
  final Set<WordPair> _saved = new Set<WordPair>();
  final TextStyle _biggerFont = const TextStyle(fontSize: 18.0);
  ...
}
Run Code Online (Sandbox Code Playgroud)
  1. 是否将_Widget设为私有?在这种情况下,主类不会无法评估Widget吗?

窗口小部件

Widget _buildRow(WordPair pair) {
  final bool alreadySaved = _saved.contains(pair);  // Add this line.
  ...
}
Run Code Online (Sandbox Code Playgroud)

dart-sdk flutter

22
推荐指数
2
解决办法
6449
查看次数

adRequest.addTestDevice("device_id")是什么意思?

我对admob adrequest感到困惑.我不明白adRequest.addTestDevice("device_id").

如果我写:

AdRequest adRequest = new AdRequest.Builder()
                .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
                .addTestDevice(DeviceInfo.getDeviceId(activity)).build();
Run Code Online (Sandbox Code Playgroud)

对于每个设备,它会影响我的AdMob帐户吗?或者 只是每个测试设备或现实设备的addTestDevice("deviceid")?如果我只将我的测试设备的ID添加到AdRequest,那么它是否会将广告显示给其他设备?

android admob

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

是否有Android设计模式可以处理单个活动中的多个片段?

我在工作中继承了一些代码,我对一些实现有疑问.我正在处理的应用程序有一个包含大约15个不同片段的Activity.处理这些片段的Activity中的逻辑大致可以使用以下伪代码进行汇总:

if (button_1 selected) { 
    load fragment_1; 
} else if (button_2 selected) {
    load fragment_2;
} else if (button_3 selected) {
    load fragment_3;
} ...and so on x15ish
Run Code Online (Sandbox Code Playgroud)

我的问题是:是否存在某种Android设计模式来处理这样的情况?代码有效; 但是,对于一个巨大的if/else或case声明,我感觉不太舒服.我看到了这个问题,它似乎与我遇到的问题非常相似.我在互联网上做了很多搜索,但我没有找到这种情况的例子或最佳实践.

如果有人可以指出我正确的方向或有一些建议; 那太棒了.谢谢!

android design-patterns android-fragments android-activity

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

修改UI线程视图时,Android UI不会崩溃

场景:

在测试片段中的线程时遇到一个奇怪的问题。

我有一个用Kotlin编写的片段,其onResume()中包含以下片段:

override fun onResume() {
    super.onResume()

    val handlerThread = HandlerThread("Stuff")
    handlerThread.start()
    val handler = Handler(handlerThread.looper)
    handler.post {
        Thread.sleep(2000)
        tv_name.setText("Something something : " + isMainThread())
    }
}
Run Code Online (Sandbox Code Playgroud)

is MainThread()是一个检查当前线程是否为主线程的函数,如下所示:

private fun isMainThread(): Boolean = Looper.myLooper() == Looper.getMainLooper()
Run Code Online (Sandbox Code Playgroud)

我看到我的TextView在2秒后更新为“ Something something:false”

看到false告诉我该线程当前不是UI / Main线程。

我以为这很奇怪,因此我创建了相同的片段,但用onResume()的以下代码段用Java编写:

@Override
public void onResume() {
    super.onResume();

    HandlerThread handlerThread = new HandlerThread("stuff");
    handlerThread.start();
    new Handler(handlerThread.getLooper()).post(new Runnable() {
        @Override
        public void run() {
            try {
                Thread.sleep(2000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            textView.setText("Something something...");
        }
    }); …
Run Code Online (Sandbox Code Playgroud)

java multithreading android kotlin

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

检测 Android 中特定变量的值何时发生变化

我有一个int名为 的变量mCurrentIndex。当它的值发生变化时我想做一些事情。

例如:

public class MainActivity extends Activity{

private int mCurrentIndex = 0;

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //Apps logic.
  }

   public onCurrentIndexValueChange(){

   button.setClickable(true);

   }
}
Run Code Online (Sandbox Code Playgroud)

java android

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