2012-03-14 4 views
5

SherlockActionBar로 멋진 인터페이스를 만들었습니다. 가로 모드에서는 listfragment와 "detailsfragment"를 모두 볼 수 있습니다.조각 내 페이지 표시기

는 지금은 detailsframe 내부 viewpageindicator (https://github.com/JakeWharton/Android-ViewPagerIndicator)를 추가하고 싶은, 그래서 내가 같을 것이다 :

--------------------------| 
|_1___|TAB1 | TAB2 | ETC | 
|_2___|-------------------| 
|_3___|Example: content | 
|_4___| TAB1 of listitem 1| 
|_5___|___________________| 

나는이 분명하다 바랍니다. 그래서 기본적으로 조각 내에서 FragmentManager/TabPageIndicator를 사용합니다.

이게 가능합니까? 나는

감사합니다 :(.. 그것을 밖으로 알아낼 수 없습니다!

+0

왼쪽에 ListViewFragment가 있습니까? 그런 다음 각 ListView Item은 다음을 포함하는 다른 RHS Fragment를로드합니다. TabPageIndicator 및 ViewPager? –

답변

6

Fragment 안에 Fragment을 넣으면 안됩니다. 그러나 ViewPager을 조각 안에 넣고 찾고있는 결과를 얻을 수 있습니다.

이전에 내 앱 중 하나에 대해 동일한 문제가 발생했습니다 (ViewPagerListView 초를 포함시키고 싶었습니다). 이것은 최종 결과였다 (행 참조; 빨간색 Fragment, 블루 ViewPagerIndicator, 녹색 ViewPager 포함) :

Example ViewPager inside a Fragment

나는 다음 단계로이 작업을 수행. 주먹, 세부 - 조각을 위해, 나는 다음과 같은 XML 파일을 만들어 내 조각에

public class MainPagerAdapter extends PagerAdapter implements TitleProvider { 

    // constructor 
    ...   

    @Override 
    public void destroyItem(ViewGroup container, int position, Object object) { 
     // remove the object (we don't want to keep it in memory as it will get recreated and cached when needed) 

     ViewPager viewPager = (ViewPager) container; 
     View view = (View) object; 
     viewPager.removeView(view); 
    } 

    @Override 
    public Object instantiateItem(View pager, final int position) { 
     // inflate your 'content'-views here (in my case I added a listview here) 
     // similar to a listadapter's `getView()`-method 

     View wrapper = ... // inflate your layout 
     ... // fill your data to the appropriate views 

     ((ViewPager) pager).addView(wrapper); 
    } 

    public String getTitle(int position) { 
     ... // return the title of the tab 
    } 
} 

다음, 그런 다음

<?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="vertical"> 

    <com.viewpagerindicator.TabPageIndicator 
     android:id="@+id/viewpagerIndicator" 
     android:layout_height="wrap_content" 
     android:layout_width="match_parent" /> 
    <android.support.v4.view.ViewPager 
     android:id="@+id/viewpager" 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1" /> 

</LinearLayout> 

을, 나는 ViewPager와 TabPageIndicator을 채울 수있는 사용자 정의 PagerAdapter를 설정 다음을 설정했습니다.

+1

우수 답변! –

+0

안녕하십니까. 전체 코드를 제공해주십시오 .. 미리 감사드립니다. – VENKI

+0

@Reinier,이게 뭐야 View detailsFrame = context.findViewById (R.id.details_fragment); 그것이 무엇을 나타내는가? 어느 레이아웃에 놓여 있니? –