2012-09-17 8 views
3

조각을 사용하여 스크롤 가능한 탭을 만들려고합니다.조각을 사용할 때 탭 내용이 표시되지 않습니다.

탭도 표시되고 스크롤됩니다. 그러나 문제는 탭 콘텐츠가 표시되지 않는 것입니다. 조각을 사용하여 내용을 표시하고 있습니다. 나는이 주제에서 새로운 것이다. 이 코드에서 아무 것도 놓치고 있습니까?

도와주세요.

public class SrollableTab extends Activity 
{ 
    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     ActionBar bar = getActionBar(); 
     bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 
     bar.setDisplayOptions(0, ActionBar.DISPLAY_SHOW_TITLE); 
     bar.addTab(createTab("Tab 1")); 
     bar.addTab(createTab("Tab 2")); 
     bar.addTab(createTab("Tab 3")); 
     bar.addTab(createTab("Tab 4")); 
     bar.addTab(createTab("Tab 5")); 
     bar.addTab(createTab("Tab 6")); 

     if (savedInstanceState != null) { 
      bar.setSelectedNavigationItem(savedInstanceState.getInt("tab", 0)); 
     } 
    } 

    public Tab createTab(String tabTitle) 
    { 
     ActionBar bar = getActionBar();  
     Tab tab = bar.newTab().setText(tabTitle).setTabListener(new TabFragment()); 
     return tab; 
    } 

    class TabFragment extends Fragment implements TabListener 
    { 

     @Override 
     public void onCreate(Bundle fragmentState) 
     { 
      super.onCreate(fragmentState);    
     } 
     @Override 
     public View onCreateView(LayoutInflater inflator, ViewGroup container, Bundle savedState) 
     {  
      View view = inflator.inflate(R.layout.tab_content, container, false); 
      TextView t = (TextView)view.findViewById(R.id.txtTab); 
      t.setText("tab content"); 
      return view; 

     } 
     @Override 
     public void onActivityCreated(Bundle savedState) 
     { 
      super.onActivityCreated(savedState); 
     } 

     @Override 
     public void onTabReselected(Tab tab, FragmentTransaction ft) { 

     } 

     @Override 
     public void onTabSelected(Tab tab, FragmentTransaction ft) { 

     } 

     @Override 
     public void onTabUnselected(Tab tab, FragmentTransaction ft) { 

     } 
    } 
} 

이 나이하지만 내 자신의 해결책을 발견 할 수있다

<?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" 
    android:background="#ffffff" > 

    <TextView android:id="@+id/txtTab" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="hello" 
     android:textColor="#ff0000"/> 
</LinearLayout> 
+0

문제가 무엇인지 알아 냈습니까? – cdbitesky

답변

2

tab_content.xml.

신소재 TabLayout을 사용할 때까지 잠시 동안 PagerSlidingTabStrip을 사용했습니다. 둘 다 Activity에서 작동하지만 Fragments에서는 작동하지 않습니다. 이 about the bug on fragments.

가 수정 내가 생성자 매개 변수 대신 활동의 FragmentManager 대신 인 조각의 하나를 사용 사용하는, FragmentManager 필요에 (일반적으로 FragmentPagerAdapter로 확장) 설정 viewpager의 adater에, IS와 왔어요 논의하다 getChildFragmentManager().

해결했습니다. 안드로이드 버그는 여전히 나를 귀찮게한다.

건배

관련 문제