gpt4 book ai didi

Android:重写 onCreateView 的正确方法是什么?

转载 作者:行者123 更新时间:2023-11-30 02:00:45 28 4
gpt4 key购买 nike

我当前的问题是我正在尝试触发 Animator 在两个 Activity 之间转换。我的目标是创建从一个 Activity 到另一个 Activity 的循环显示过渡。

我开始收到此错误:“无法在分离 View 上启动此动画制作器!”

我在查看 Stack Overflow 时发现了这个:Cannot start this animator on a detached view! reveal effect

一种解释似乎是第二个 Activity 的 View 尚未膨胀,这就是 Animator 无法启动的原因。

线程中的人使用这个作为解决方案:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
// Inflate the layout for this fragment
final View view = inflater.inflate(R.layout.fragment_map_list, container, false);
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
view.addOnLayoutChangeListener(new View.OnLayoutChangeListener() {
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
@Override
public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) {
v.removeOnLayoutChangeListener(this);
toggleInformationView(view);
}
});
}
return view;
}

但是,我对这里发生的事情有点困惑。看来他也在为Activity充气布局。如果是这样,我不应该调用:

setContentView(R.layout.activity_bnew_account);

在Activity的onCreate方法中?我应该在覆盖的 onCreateView 中使用布局充气器来充气 Activity 布局吗?感谢您提供有关如何解决此问题的任何建议。

最佳答案

onCreateView 是 Fragment 上的一个方法,参见文档 here

Activity 没有等效项,setContentView 会在您的布局上调用 inflate。

Activity 代码的大致等效项是(其中 R.id.rooViewId 是 Activity 布局中 Root View 的 ID):

@Override 
public View onCreate (Bundle savedInstanceState) {
setContentView(R.layout.activity_bnew_account);
// Inflate the layout for this fragment
final View view = findViewById(r.id.rootViewId);
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
view.addOnLayoutChangeListener(new View.OnLayoutChangeListener() {
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
@Override
public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) {
v.removeOnLayoutChangeListener(this);
toggleInformationView(view);
}
});
}
}

关于Android:重写 onCreateView 的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31526817/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com