因此,一旦从Fragment中选择了ListItem,我就试图更改我的ListView布局。我不太确定我将如何去做。这是我正在使用的代码的基础...

@Override
public View onCreateView(final LayoutInflater inflater,final ViewGroup container, Bundle savedInstanceState) {

    View rootView = inflater.inflate(R.layout.fragment_list_d, container, false);

    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view,
                                int position, long id) {

            // Getting list item index
            int listIndex = position;

            ((IndexListener) getActivity()).onIndexSelected(listIndex);

        }
    });


    return rootView;

}


我有意删除了代码的各个部分,以使其尽可能与问题相关。

摘要

那么,一旦单击rootView后,我将如何修改R.layout.fragment_list_d返回除ListItem以外的其他布局格式?

最佳答案

如果您不想进行片段替换,唯一的选择就是获取父项,删除先前的内容并添加新的内容。

首先将rootView存储在类字段中,以便在通过onCreateView传递后即可获取其引用,然后执行以下操作:

ViewGroup parentView =rootView.getParent();
parentView.removeView(rootView);
View newRootView = inflater.inflate(R.layout.newlayout, parentView, false);
parentView.addView(newRootView);


像这样的东西应该起作用(未经测试,只是从我的脑海写的)

希望这可以帮助。

09-10 12:27
查看更多