Android Fragment 에서 사용 하 는 인 스 턴 스 데모
먼저 인 스 턴 스 실행 효과 캡 처 를 붙 입 니 다.
효과 그림 의 왼쪽 은 목록 이 고 오른쪽 은 목록 item 의 상세 한 정보 입 니 다.
레이아웃 파일 먼저 보기(layot):
XML/HTML 코드
<?xml version=“1.0″ encoding=“utf-8″?>
<LinearLayout xmlns:android=“http://schemas.android.com/apk/res/android”
android:orientation=“horizontal” android:layout_width=“match_parent”
android:layout_height=“match_parent”>
<fragment
class=“com.fragment.main.TitlesFragment”
android:id=“@+id/titles” android:layout_weight=“1″
android:layout_width=“0px” android:layout_height=“match_parent” />
<FrameLayout android:id=“@+id/details” android:layout_weight=“1″
android:layout_width=“0px” android:layout_height=“match_parent”
android:background=“?android:attr/detailsElementBackground” />
</LinearLayout>
레이아웃 파일 에는 fragment 태그 와 FrameLayout 태그 가 사 용 됩 니 다.Android Fragment 를 어떻게 사용 하 는 지 는 Fragment 에 포 함 된 두 가지 방법 을 소개 합 니 다.이 인 스 턴 스 는 모두 사 용 됩 니 다.레이아웃 파일 에서 fragment 탭 이 있 는 것 을 보 았 습 니 다.이것 은 사용 방법 입 니 다.FrameLayout 탭 은 fragment 를 불 러 오 는 두 번 째 캐리어 view 가 될 것 입 니 다.프로그램 구현 보기(com.fragment.main.TitlesFragment):
자바 코드
public class TitlesFragment extends ListFragment {
int mCurCheckPosition = 0;
int mShownCheckPosition = -1;
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
setListAdapter(new ArrayAdapter<String>(getActivity(),
android.R.layout.simple_list_item_activated_1,
Shakespeare.TITLES)); //
if (savedInstanceState != null) {
mCurCheckPosition = savedInstanceState.getInt(“curChoice”, 0);
mShownCheckPosition = savedInstanceState.getInt(“shownChoice”, -1);
}
getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE);
showDetails(mCurCheckPosition);
}
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt(“curChoice”, mCurCheckPosition);
outState.putInt(“shownChoice”, mShownCheckPosition);
}
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
showDetails(position);
}
/**
* listview item
*/
void showDetails(int index) {
mCurCheckPosition = index;
getListView().setItemChecked(index, true);
if (mShownCheckPosition != mCurCheckPosition) {
DetailsFragment df = DetailsFragment.newInstance(index);
FragmentTransaction ft = getFragmentManager()
.beginTransaction();
ft.replace(R.id.details, df);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
ft.commit();
mShownCheckPosition = index;
}
}
}
TitlesFragment 는 Fragment 의 하위 클래스 인 ListFragment 를 계승 하여 정적 배열 로 목록 을 채 우 고 onListItemClick 방법 을 다시 썼 습 니 다.show Details 방법 은 ListView item 의 상세 한 정 보 를 보 여 줍 니 다.자바 코드
DetailsFragment df = DetailsFragment.newInstance(index);// Fragment
FragmentTransaction ft = getFragmentManager().beginTransaction();// FragmentTransaction
ft.replace(R.id.details, df); // DetailsFragment
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
ft.commit();//
여기 에는 Android Fragment 사용 에 소 개 된 두 번 째 fragment 를 불 러 오 는 방법 이 사 용 됩 니 다.Details Fragment:자바 코드
public class DetailsFragment extends Fragment {
/** * Create a new instance of DetailsFragment, initialized to * show the text at 'index'. */
public static DetailsFragment newInstance(int index) {
DetailsFragment f = new DetailsFragment();
// Supply index input as an argument.
Bundle args = new Bundle();
args.putInt(“index”, index);
f.setArguments(args);
return f;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
if (container == null) {
return null;
}
ScrollView scroller = new ScrollView(getActivity());
TextView text = new TextView(getActivity());
int padding = (int) TypedValue.applyDimension(
TypedValue.COMPLEX_UNIT_DIP, 4, getActivity().getResources()
.getDisplayMetrics());
text.setPadding(padding, padding, padding, padding);
scroller.addView(text);
text.setText(Shakespeare.DIALOGUE[getArguments().getInt("index", 0)]);
return scroller;
}
}
DetailsFragment 에 서 는 new Instance(int index)방법 으로 DetailsFragment 인 스 턴 스 를 만 들 고 전체 인 자 를 받 아들 여 onCreateView 방법 으로 view 를 만 들 었 습 니 다.이 예 는 기본적으로 완성 되 었 는데 주로 3.0 이후 의 사용 방법 을 소개 했다.사실은 Fragment 는 SDK 1.6 이후 에 사용 할 수 있 고 1.6 에서 사용 하려 면 android-support-v4.jar 패 키 지 를 빌려 야 한다.android-support-v4.jar 는 SDK 루트 디 렉 터 리\extras\android\\compatibility\\v4 에서 찾 을 수 있 습 니 다.
이상 은 안 드 로 이 드 Fragment 에 대한 자 료 를 정리 하고 관련 자 료 를 계속 추가 하 는 것 입 니 다.본 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Bitrise에서 배포 어플리케이션 설정 테스트하기이 글은 Bitrise 광고 달력의 23일째 글입니다. 자체 또는 당사 등에서 Bitrise 구축 서비스를 사용합니다. 그나저나 며칠 전 Bitrise User Group Meetup #3에서 아래 슬라이드를 발표했...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.