工具的真正目的是什么:Android XML中的上下文

我正在学习android,并想知道为什么我无法在布局XML文件中找到属性tools:context的实际目的tools:context

我在这里阅读https://developer.android.com/studio/write/tool-attributes.html#toolscontext下的图像, onClick将不适用于任何视图,直到我们指定tools:context

我试过并且奇怪它没有任何tools:context我也从它的stackoverflow中读取它用于选择适当的布局主题。 但它没有使用tools:context对我来说工作正常tools:context那么这是什么目的呢?

XML布局:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="CallIt"
        />
</RelativeLayout>

主要活动:

package com.something.testingwith42;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

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

    public void CallIt(View view){
        Toast.makeText(this, "Checking", Toast.LENGTH_LONG).show();
    }
}

没有tools:context一切工作都正常


在我们指定工具:上下文之前,onClick不能用于任何视图

该文件中没有任何内容表明这一说法。

没有工具的情况下,一切工作都正常

正确。 那是因为那个文档中没有提到onClick()只会在你有tools:context工作tools:context 。 它确实表示,对于快速修复,您需要tools:context来知道在哪里添加onClick()方法。

还从它用于选择布局的正确主题的计算器读取

这也是不正确的。

工具的真正目的是什么:Android XML中的上下文

它为开发工具提供了上下文,以及在何处使用此布局,以便这些工具可以为开发人员提供更好的帮助,例如:

  • 更准确地呈现预览,并将主机活动及其主题考虑在内
  • 更智能的助理,比如上述的快速修复
  • tools:context是完全可选的。 没有它,开发工具可以并且可以工作。 这些工具可能会降低对您的帮助,但这是您的选择。

    tools:context - 或tools名称空间中的任何属性 - 在运行时不会产生影响。 我没有检查过,但我希望在打包APK时他们甚至会被剥离,因为它们在运行时没有用处。

    链接地址: http://www.djcxy.com/p/91385.html

    上一篇: What is the real purpose of tools:context in Android XML

    下一篇: What does android:layout