Mic*_*sky 5 android android-view
谁能解释为什么isAttachedToWindow()是false而不是true?我似乎有附件问题。
据我了解,setContentView(rl)应该将其附加RelativeLayout到窗户上。我缺少什么?
public class TestActivity extends Activity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final RelativeLayout rl = new RelativeLayout(this);
setContentView(rl);
boolean isAttached = rl.isAttachedToWindow();
}
}
Run Code Online (Sandbox Code Playgroud)
当您执行与视图相关的操作时,该更改实际上不会立即执行,而是会发布到MessageQueue主线程的 上,稍后这些消息将由 的下一个循环事件处理Looper。
我们用一个具体的例子来说话。想象一下你有一个TextView带有wrap_content/wrap_content布局属性的。
TextView textView = ...;
textView.setText("some fancy text");
// Will print `0 0`, because this message hasn't yet beet "parsed" by `Looper`
// Changes will take effect on the next frame
Log.i("tag", textView.getWidth() + " " + textView.getHeight());
// Will print `some fancy text`, because this is just a plain Java object
Log.i("tag", textView.getText());
就您而言,如果您等待足够长的时间,您最终会看到它被附加。您可以通过View#addOnAttachStateChangeListener()API 收到有关附加状态更改的通知。
| 归档时间: |
|
| 查看次数: |
2449 次 |
| 最近记录: |