有人可以解释充气方法吗?更深入地了解安卓视图
我想更深入地了解Android的工作原理,我需要有人来解释Views实际上是如何在“引擎盖下”工作的。
在正常过程中,我们会使用方法“setContentView(R.layout.ourlayoutfile)”在扩展活动的onCreate方法中膨胀(这是正确的单词吗?)视图。然后,我们将从该 XML 中找到视图。
快速示例:如果我们需要找到一个按钮,我们需要首先调用“setContentVIew()”,然后在我们的按钮上调用“findViewById”。然后,我们可以分别使用此按钮/视图。
我最近开始玩 LayoutInflater,因为我到了无法用“setContentView”方法自己动手不及的地步,令我惊讶的是,我发现我的 Android 知识非常好。我甚至无法管理布局来工作。我很尴尬。
一天后,我设法用布局来夸大视图。实际上这并不难,我从一开始就已经非常接近了,但是有一个参数我不知道该传递什么。请看这个代码:( 这一切都发生在 onCreate 活动方法中)
View v = getLayoutInflater().inflate(R.layout.activity_main, (ViewGroup) getWindow().getDecorView());
final Button b = (Button) v.findViewById(R.id.button1);
final TextView tv = (TextView) v.findViewById(R.id.textView1);
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
tv.setText("Just random text");
}
});
}
这段代码工作正常,但我面临的问题实际上是这行代码:
getLayoutInflater().inflate(R.layout.activity_main, null);
我总是传递“null”参数,当然它不起作用。即使在文档中,它也说此参数是可选的!( 为什么 ? ,如果需要)?
我做了简单的布局。请看一下它,以及它使用HiearchyViewer的外观:
上图中的第二个参数是什么,为什么我们需要它?也许连接我的布局(R.layout.activity_main),与Android提供的视图(从左到右的第一个视图 - 父视图)。如果是这样的话,为什么机器人不自动连接这两个?!
如果还有一些有用的信息,我需要知道关于视图,如果有人可以告诉我(或发布链接),我会非常高兴。此外,如果我能获得一些链接到一些网站的链接,那就太好了。等。有用的东西。
如果有人会否决我的问题,请解释。非常感谢大家!