0

나는 3 개의 프래그먼트가있는 ViewPager이 있습니다. 두 가지 모두 제대로 작동합니다. 세 번째 호출기에 문제가 있습니다.이 하나는 TabHost이며 각 탭에 하나의 조각이 있습니다. 하지만 조각 안에 Tabhost을 넣을 수는 없다고 읽었습니다. 중첩 된 단편은 금지됩니다.Android ViewPager 및 프래그먼트 디자인

누구든지 내 문제를 해결하기 위해 어떤 조치를 취할 수 있습니까? 대안이 있습니까?

+1

이 게시물을 [보기 페이지] (http://android-developers.blogspot.com/2011/08/horizontal-view-swiping-with-viewpager.html) 및이 글은 [조각] (http : //developer.android.com/guide/topics/fundamentals/fragments.html) 및이 [조각 탭 호출기] (http://developer.android.com/resources/samples/Support4Demos/src/com/example/android/) supportv4/app/FragmentTabsPager.html). –

+0

감사합니다 Vineet,하지만 난 이미 그들을 보았다. 내 디자인을 바꿀 생각이지만, 어떻게해야할지 모르겠다. 어쨌든 다시 한번 감사드립니다. 프래그먼트와 뷰 페이지를 사용하는 방법을 배우기 위해이 기사를 추천합니다. – gutiory

답변

0

이것은 내 문제를 해결하기 위해 수행 한 작업입니다.

탭 호스트가 아니기 때문에 "사용자 지정"이라고 말한 적이 있습니다. 단지 Tabhost가 아니기 때문에 "사용자 지정"이라고 말합니다. ViewPager의 내 조각 중 하나에 4 개의 이미지가 있습니다. .. 조각과 조각의 나머지 부분은 하나의 FrameLayout이 내가 이미지를 터치 할 때마다, 나는 각각의 fragemnt의 프레임에 조각을 대체

내가 몇 가지 코드를 추가합니다.

<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="match_parent" 
android:layout_height="match_parent"> 
<LinearLayout 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:orientation="horizontal"> 
<TableLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent"> 
<TableRow > 
<LinearLayout android:id="@+id/button1" 
android:orientation="vertical" 
android:layout_width="0dip" 
android:layout_height="wrap_content" 
android:layout_weight="1" 
android:onClick="button1Click" 
> 
<ImageView android:id="@+id/iv1" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:src="@drawable/ic1"/> 
<TextView android:id="@+id/tv1" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:gravity="center" 
android:text="@string/text1"/> 
</LinearLayout> 
<LinearLayout android:id="@+id/button2" 
android:orientation="vertical" 
android:layout_width="0dip" 
android:layout_height="wrap_content" 
android:layout_weight="1" 
android:onClick="button2Click" 
> 
<ImageView android:id="@+id/iv2" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:src="@drawable/ic2"/> 
<TextView android:id="@+id/tv2" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:gravity="center" 
android:text="@string/text2"/> 
</LinearLayout> 
<LinearLayout android:id="@+id/button3" 
android:orientation="vertical" 
android:layout_width="0dip" 
android:layout_height="wrap_content" 
android:layout_weight="1" 
android:onClick="button3Click" 
> 
<ImageView android:id="@+id/iv3" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:src="@drawable/ic3"/> 
<TextView android:id="@+id/tv3" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:gravity="center" 
android:text="@string/text3"/> 
</LinearLayout> 
<LinearLayout android:id="@+id/button4" 
android:orientation="vertical" 
android:layout_width="0dip" 
android:layout_height="wrap_content" 
android:layout_weight="1" 
android:onClick="button4Click" 
> 
<ImageView android:id="@+id/iv4" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:src="@drawable/ic4"/> 
<TextView android:id="@+id/tv4" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:gravity="center" 
android:text="@string/text4"/> 
</LinearLayout> 

</TableRow> 
</TableLayout> 
</LinearLayout> 


<FrameLayout android:id="@+id/layout_actual" 
android:layout_width="match_parent" 
android:layout_height="match_parent"> 

</FrameLayout> 

</LinearLayout> 

단편 활동 :

그리고 마지막으로 FragmentInViewPager (다른 4 조각이 들어있는 하나) 내가 가진의 희망

public void changeFragment(int fragmentId) 
{ 
if(mCurrentFragmentId != fragmentId) { 

switch(fragmentId) { 
case BUTTON1: 

    mFTransaction = mFManager.beginTransaction(); 
    mFTransaction.replace(R.id.layout_actual, mFragment1); 
    mFTransaction.commit(); 
    mIv1.setImageResource(R.drawable.ic1_sel); 
    mIv2.setImageResource(R.drawable.ic2); 
    mIv3.setImageResource(R.drawable.ic3); 
    mIv4.setImageResource(R.drawable.ic4); 
    break; 

case BUTTON2: 
    mFTransaction = mFManager.beginTransaction(); 
    mFTransaction.replace(R.id.layout_actual, mFragment2); 
    mFTransaction.commit(); 
    mIv1.setImageResource(R.drawable.ic1); 
    mIv2.setImageResource(R.drawable.ic2_sel); 
    mIv3.setImageResource(R.drawable.ic3); 
    mIv4.setImageResource(R.drawable.ic4); 
    break; 

case BUTTON3: 
    mFTransaction = mFManager.beginTransaction(); 
    mFTransaction.replace(R.id.layout_actual, mFragment3); 
    mFTransaction.commit(); 
    mIv1.setImageResource(R.drawable.ic1); 
    mIv2.setImageResource(R.drawable.ic2); 
    mIv3.setImageResource(R.drawable.ic3_sel); 
    mIv4.setImageResource(R.drawable.ic4); 
    break; 

case BUTTON4: 
    mFTransaction = mFManager.beginTransaction(); 
    mFTransaction.replace(R.id.layout_actual, mFragment4); 
    mFTransaction.commit(); 
    mIv1.setImageResource(R.drawable.ic1); 
    mIv2.setImageResource(R.drawable.ic2); 
    mIv3.setImageResource(R.drawable.ic3); 
    mIv4.setImageResource(R.drawable.ic4_sel); 
    break; 

} 

mCurrentFragmentId = fragmentId; 
} 

} 

에서

public void boton1Click(View v){ 
    mFragmentInViewPager.changeFragment(BUTTON1); 
} 

public void boton2Click(View v){ 
    mFragmentInViewPager.changeFragment(BUTTON2); 
} 

public void boton3Click(View v){ 
    mFragmentInViewPager.changeFragment(BUTTON3); 
} 
public void boton4Click(View v){ 
    mFragmentInViewPager.changeFragment(BUTTON4); 
} 
잘 자신을 설명했다. 누구든지 더 많은 정보가 필요하면 말해주세요.

0

이 문제에서 언급 한대로 코드를 참조하면 설계에 따라 작동합니다. Plese see