Android 使用框架布局动态更改布局

Android 使用框架布局动态更改布局,android,android-layout,listview,android-fragments,Android,Android Layout,Listview,Android Fragments,我正在学习片段,我被困在如何动态更改主活动中的布局中,在主活动中,我希望根据从列表视图中选择的列表文本调用不同的片段 这是片段扩展类。我是否需要在此处执行任何if-else操作,以便返回所需的布局?假设我单击listview中的另一个选项,我希望在主活动中显示layout.arts而不是layout.sports,该如何操作 public class MenuFragment extends Fragment { @Override public View onCreateV

我正在学习片段,我被困在如何动态更改主活动中的布局中,在主活动中,我希望根据从列表视图中选择的列表文本调用不同的片段

这是片段扩展类。我是否需要在此处执行任何if-else操作,以便返回所需的布局?假设我单击listview中的另一个选项,我希望在主活动中显示layout.arts而不是layout.sports,该如何操作

public class MenuFragment extends Fragment {


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        // Inflate the layout for this fragment

        return inflater.inflate(R.layout.sports, container, false);
    }

}
下面是listview的onclick侦听器

private class DrawerItemClickListener implements ListView.OnItemClickListener {
        @TargetApi(Build.VERSION_CODES.HONEYCOMB)
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            Log.d("Hello","Clicked");
            // update the main content by replacing fragments
            MenuFragment frag = new MenuFragment();

            android.support.v4.app.FragmentManager fragmentManager = getSupportFragmentManager();
            android.support.v4.app.FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
            MenuFragment fragment = new MenuFragment();
            fragmentTransaction.replace(R.id.drawer_layout, fragment, String.valueOf(position));
            fragmentTransaction.commit();

            mDrawerLayout.closeDrawer(mDrawerList);
        }
    }

如果业务逻辑与仅布局相同,则可以在片段的onCreateView中编写If-else条件


如果体育和艺术的业务逻辑不同,则为体育和艺术创建两个不同的片段,并使用McClick方法替换相应的片段。

我认为您可以使用布局充气器:

public void changeView(int layoutId){ 
    container.removeAllViewsInLayout(); 
    inflater.inflate(layoutId, container, true); 
}

容器和充气器来自onCreateView。

您是否能够解释如何操作,或者提供一个工作示例?public void changeViewint layoutId{container.removeAllViewsInLayout;inflater.inflatelayoutId,container,true;}容器和充气机来自OnCreateView您可以从列表项单击的不同位置打开不同的碎片。如何在碎片之间进行选择?您可以详细说明吗?