效果图:
代码如下:
1、main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" > <fragment android:id="@+id/title" class="com.njupt.fragment1.TitleFragment" android:layout_width="0dp" android:layout_height="fill_parent" android:layout_weight="1" /> <FrameLayout android:id="@+id/detail" android:layout_width="0dp" android:layout_height="fill_parent" android:layout_weight="1" /> </LinearLayout>
2、TitleFragment
package com.njupt.fragment1; import android.app.FragmentManager; import android.app.FragmentTransaction; import android.app.ListFragment; import android.os.Bundle; import android.view.View; import android.widget.ArrayAdapter; import android.widget.ListView; public class TitleFragment extends ListFragment { private String[] data = new String[]{ "星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期天" }; private int currentPosition = 0; @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); setListAdapter(new ArrayAdapter<String>(getActivity(),android.R.layout.simple_list_item_activated_1,android.R.id.text1,data)); showDetail(currentPosition); } public void showDetail(int index){ FragmentManager fm = getFragmentManager(); DetailFragment detail = (DetailFragment) fm.findFragmentById(R.id.detail); if(detail == null || index != detail.getShowIndex()){ getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE); getListView().setItemChecked(index, true); detail = DetailFragment.getInstance(index); FragmentTransaction ft = fm.beginTransaction(); ft.replace(R.id.detail, detail); ft.commit(); } } @Override public void onListItemClick(ListView l, View v, int position, long id) { super.onListItemClick(l, v, position, id); showDetail(position); } }
3、DetailFragment
package com.njupt.fragment1; import android.app.Fragment; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; public class DetailFragment extends Fragment { private String[] data = new String[]{ "星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期天", }; public static DetailFragment getInstance(int index){ DetailFragment df = new DetailFragment(); Bundle args = new Bundle(); args.putInt("index", index); df.setArguments(args); return df; } public int getShowIndex(){ return getArguments().getInt("index"); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { TextView tv = new TextView(getActivity()); tv.setText(data[getShowIndex()]); return tv; } }