我想在片段中创建动态布局。但是,当我尝试在OnCreate()中调用的网络响应上创建动态按钮布局时,但视图不会生成获取空白视图。在getComponents()中包含NetworkResponse(),响应基础将创建动态视图,如下所示
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return rootView;
}
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getComponents();
}
private void getComponents(){
LinearLayout ll = new LinearLayout(getActivity());
ll.setOrientation(LinearLayout.VERTICAL);
ToggleButton toggleButton = new ToggleButton(getActivity());
toggleButton.setChecked(false);
toggleButton.setBackground(getActivity().getResources().getDrawable(R.drawable.toggle_selector));
ll.addView(toggleButton);
rootView = ll;
}
答案 0 :(得分:0)
首先,您应该在onCreateView()而不是onCreate()
中创建动态布局例如,
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle
savedInstanceState) {
View view = inflater.inflate(R.layout.fragment, container, false);
RelativeLayout fragment_container = (RelativeLayout) view.findViewById(R.id
.fragment_container);
// Create a button
Button button = new Button(getContext());
// add the button in fragment
fragment_container.addView(button );
return view;
}
片段xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/fragment_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:focusableInTouchMode="true">
</RelativeLayout>
简而言之,您正在添加片段容器的任何视图
答案 1 :(得分:0)
片段周期与Android中的Activity周期不同。 它有onCreate(),它创建片段活动
onCreateView()在这里创建并返回视图到其片段活动。如果你想添加动态视图,应该在这里添加。
然后在onViewCreated()这里它在成功创建视图后通知你并返回它的实例,现在你可以在这里设置监听器并使用setText getText和其他视图相关属性。