gpt4 book ai didi

安卓 fragment : container variable in onCreateView is null

转载 作者:太空狗 更新时间:2023-10-29 14:13:39 24 4
gpt4 key购买 nike

我有一个仅基于 fragment 的应用程序,实际上(我只是在创建基本内容)我只有一个 fragment ,直接在布局中声明:

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

<fragment
android:name="com.italialinux.fragments.MainFragment"
android:id="@+id/main_screen_fragment"
android:layout_width="0dp"
android:layout_height="match_parent"
/>

</FrameLayout>

这个布局是在主 Activity 中加载的,代码如下:

public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_screen);
}
}

MainFragment 类如下:

public class MainFragment extends Fragment {


final static private long ONE_SECOND = 1000;
final static private long TWENTY_SECONDS = ONE_SECOND * 20;

private final static String TAG = "MainFragment";
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
super.onSaveInstanceState(savedInstanceState);
View view = inflater.inflate(R.layout.new_reminder, container, false);
return view;
}

new_reminder 布局只包含两个 EditText 和几个标签。

问题是我无法扩充布局,因为在 onCreateView 中传递的容器变量为空。

我在 SO 上看到了很多问题,如下所示: Android Fragment is given a null container in onCreateView()

所有人都说我需要使用交易,但我不明白的是:如果我有一个不可变的 fragment ,在布局中,并且不需要更改(就像在那种情况下,就像在许多示例中,你有一个包含项目列表的 ListFragment),我如何膨胀布局在当前 View 中?

使用 ListFragment 可以,但如果我不想使用它怎么办?

正确调用了onCreateView方法。

最佳答案

在您的主布局中,尝试使用 android:layout_width="match_parent" 而不是 android:layout_width="0dp"

并且您不应该在 onCreate 中调用 onSaveInstanceState(savedInstanceState);当您的 fragment 下降以允许它保存其状态时,框架会调用它。

关于安卓 fragment : container variable in onCreateView is null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24589202/

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