ViewPager를 사용하여 세 개의 탭으로 단편을 가져 오려고합니다. 처음에는 FragmentMgr을 사용하여 Activity에서 프래그먼트를 인스턴스화하는 데 사용되었습니다. ViewPager를 사용하여이 탐색을 변환하면이 Fragment가 더 이상 표시되지 않습니다. 나는이 같은 조각을 시작할 때 표시됩니다ViewPager에 단편을 표시 할 때의 문제
MainActivity.java. LaunchPageAdapter가 LaunchListFragment를 호출
mViewPager = (ViewPager) findViewById(R.id.pager);
mViewPager.setAdapter(new LaunchPageAdapter(getSupportFragmentManager(),LIST_TYPE));
mViewPager.setCurrentItem(0);
을 : 예를 들면 다음과 같이
LaunchListFragment fragment = new LaunchListFragment();
fragment.newInstance(LIST_TYPE);
getSupportFragmentManager().beginTransaction()
.add(R.id.item_detail_container,
fragment).commit();
나는 ViewPager을 사용하도록 코드를 위의이 변화를 시도했다. 여기 LaunchPageAdapter.java
public class LaunchPageAdapter extends FragmentPagerAdapter {
private static String select="";
public LaunchPageAdapter(FragmentManager fm, String type) {
super(fm);
select=type;
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
return LaunchListFragment.newInstance(select);
case 1:
return AddTeamFragment.newInstance();
}
return null;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return 2;
}
는 LaunchListFragment.java
public class LaunchListFragment extends ListFragment implements ActionBar.TabListener {
public static String LIST_TYPE = "invalid";
GenericListData g_data[] = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View result = inflater.inflate(R.layout.fragment_launch_list,
container, false);
setActionTabs();
setList();
return (result);
}
public static Fragment newInstance(String type) {
Fragment frag = new LaunchListFragment();
Bundle args = new Bundle();
LIST_TYPE=type;
args.putString(LIST_TYPE, type);
frag.setArguments(args);
return (frag);
}
이 MainActivity main.xml에 의해 사용되는 레이아웃이다
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools= "match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:baselineAligned="false"
android:divider="?android:attr/dividerHorizontal"
android:orientation="horizontal"
android:showDividers="middle"
tools:context=".MainActivity" >
<fragment
android:id="@+id/item_list"
android:name="com.teammanager.ItemListFragment"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
tools:layout="@android:layout/list_content" />
<FrameLayout
android:id="@+id/item_detail_container"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="3" >
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
</FrameLayout>
이다 fragment_laun
나는이 디버깅
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >
<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:drawSelectorOnTop="false" >
</ListView>
<TextView
android:id="@+id/itemName"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_alignParentBottom="true"
android:layout_alignParentTop="true"
android:layout_marginBottom="5dp"
android:layout_marginTop="5dp"
android:gravity="center_vertical"
android:textColor="#000000"
android:textSize="22dp"
android:textStyle="bold" />
LaunchListFragment
에서 사용 ch_list.xml, 나는 그것이 바로 표시되지 않습니다,에서 onCreate과에서 onCreate보기라고, LaunchListFragment가 인스턴스화지고 볼 수 있습니다. :(
여기 사람이 내 ViewPager 구현 여기에 무엇을 놓치고 있다면 알려주세요?
업데이트 내가 Viewpager를 사용하지 않고 LaunchListFragment라고하면, 내가 먼저 콘텐츠보기를 설정
및 통과 할 수 나는이 V를 사용하도록 변경하면 내가 조각을 표시 할 FrameLayout이의 ID입니다 R.id.item_detail_container은. 이전
setContentView(R.layout.main.xml);
LaunchListFragment fragment = new LaunchListFragment();
fragment.newInstance(LIST_TYPE);
getSupportFragmentManager().beginTransaction()
.add(R.id.item_detail_container,
fragment).commit();
을 main.xml에 참조하시기 바랍니다 iewPager, 표시 할 부분을 지시하는 위치가 확실하지 않습니다. 내 조각 onView에서 나는 fragment_launch_list를 팽창시키고보기를 반환하고 있습니다. 그러나 뷰 호출기는 조각보기를 설정할 위치를 어떻게 알 수 있습니까? id 호출기 안에 있습니까?
저는 절대 초보자입니다.이 모든 것이 순진한 질문이라면 사과드립니다.
건배.
궁금한 점은 왜 정적 변수'select'입니까? – Geros
이전에 다른 조각에서 값 선택을 설정하는 데 사용되는 것은 객체간에 데이터를 전달하는 게으른 방법입니다. – Geoplex
한 조각에서 다른 조각으로 값을 전송하고 인터페이스를 사용하려는 경우 정적 변수를 사용하지 마십시오. 올바른 방법이 아닙니다 ..! –