Вы бы объявили свой макет mylayout.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mainBack"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/transparent" >
<FrameLayout
android:id="@+id/gridViewFrag"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</RelativeLayout>
Вы хотите заменить FrameLayout
из вышеприведенного макета на myfragment.xml (например):
<?xml version="1.0" encoding="utf-8"?>
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/gridview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:numColumns="auto_fit"
android:verticalSpacing="10dp"
android:horizontalSpacing="10dp"
android:columnWidth="90dp"
android:stretchMode="columnWidth"
android:gravity="center"
/>
Затем в своем коде, в соответствующем месте, вызовите метод, чтобы поменять FrameLayout и заменить его на GridView (не уверен, что вы можете сделать это в других местах)
private void attachGridViewFragment(int headerFrag) {
FragmentManager fragMgr = getSupportFragmentManager();
FragmentTransaction xact = fragMgr.beginTransaction();
try {
if (findViewById(headerFrag) != null) {
Resources res = getResources();
String title = res.getString(R.string.app_icon_name);
xact.replace(headerFrag, new GridViewFragment(title, true, true), HEADER_FRAGMENT_TAG).commitAllowingStateLoss();
}
} catch (NotFoundException e) {
// TODO Auto-generated catch block
Log.e("MyActivityName", e.getMessage());
}
}
Вам, конечно, придетсянаписать GridViewFragment
класс ... столько, сколько вы можете просто Google на как использовать фрагменты .
Но фактически вам нужно создать класс GridViewFragment
(например), который расширяетFragment
.