Android 使用框架布局动态更改布局
我正在学习片段,我被困在如何动态更改主活动中的布局中,在主活动中,我希望根据从列表视图中选择的列表文本调用不同的片段 这是片段扩展类。我是否需要在此处执行任何if-else操作,以便返回所需的布局?假设我单击listview中的另一个选项,我希望在主活动中显示layout.arts而不是layout.sports,该如何操作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
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您可以从列表项单击的不同位置打开不同的碎片。如何在碎片之间进行选择?您可以详细说明吗?