gpt4 book ai didi

android - 无法为 Android 应用程序中的 fragment 正确扩充布局

转载 作者:太空宇宙 更新时间:2023-11-03 12:34:18 25 4
gpt4 key购买 nike

首先,这是 fragment 的代码:

public class MyFragment extends Fragment {
private View FragmentView;

public static Fragment newInstance() {
MyFragment NewFragment = new MyFragment();
return NewFragment;
}

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
FragmentView = inflater.inflate(
R.layout.tasks,
new LinearLayout(MainActivity.MainContext)
);
FragmentView.setLayoutParams(
new LayoutParams(
LayoutParams.MATCH_PARENT,
LayoutParams.MATCH_PARENT
)
);
addText();

return FragmentView;
}

private void addText() {
TasksView.setBackgroundResource(R.drawable.bg_image);
TextView MyTitle = new TextView(MainActivity.MainContext);
MyTitle.setLayoutParams(
new LayoutParams(
LayoutParams.MATCH_PARENT,
LayoutParams.WRAP_CONTENT
)
);

MyTitle.setText(R.string.mytitle);
((LinearLayout) FragmentView).addView(MyTitle );
}
}

MainActivity.MainContext 在主 Activity 的类中存储为 public static 并在创建 Activity 时通过 getApplicationContext() 检索。

现在,问题就出在这里:

 FragmentView = inflater.inflate(
R.layout.tasks,
new LinearLayout(MainActivity.MainContext)
);

因此,MyTitle TextView 不会显示在 fragment 内。如果我这样做:

FragmentView = inflater.inflate(R.layout.tasks, null);

它显示了,但我收到警告:

Avoid passing null as the view root (needed to resolve layout parameters on the inflated layout's root element)

我想正确地做到这一点并且不会收到任何警告,但我找不到办法。我也试过:

FragmentView = inflater.inflate(R.layout.tasks, container);

但是应用程序崩溃了。

最佳答案

您应该将 container 作为父级传递。

FragmentView = inflater.inflate(
R.layout.tasks,
container,
false
);

您还应该指定 false,这样 LayoutInflater 就不会将膨胀 View 附加到父 View 。膨胀 View 通过 FragmentManager 附加到父 View 。

关于android - 无法为 Android 应用程序中的 fragment 正确扩充布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24557432/

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