2016-03-28 13 views
1

現在、私のアクティビティにタブを追加しようとしています。同じ場合は、Google SlidingTabLayoutSlidingTabStripを使用しています。フラグメント内のテキストビューが機能しない

マイフラグメントのXMLは次のようになります。

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="match_parent" 
    android:layout_height="match_parent" > > 

    <TextView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceLarge" 
     android:text="Large Text" 
     android:id="@+id/textViewTab" /> 


</RelativeLayout> 

マイコンテンツXMLは次のようになります。

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    app:layout_behavior="@string/appbar_scrolling_view_behavior" 
    tools:context="com.example.musicisfun.allaboutfootball.MainActivity" 
    tools:showIn="@layout/activity_main"> 


<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal"> 
    <com.example.musicisfun.allaboutfootball.tabs.SlidingTabLayout 
     android:layout_width="match_parent" 
     android:id="@+id/tabs" 
     android:layout_height="wrap_content"> 
    </com.example.musicisfun.allaboutfootball.tabs.SlidingTabLayout> 

    <android.support.v4.view.ViewPager 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/pager" 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     /> 

</LinearLayout> 

</RelativeLayout> 

と私のコードは次のようになります。

public static class TabFragment extends Fragment{ 

     public static TabFragment getInstance(int position){ 
      TabFragment tabFragment = new TabFragment(); 
      Bundle bundle = new Bundle(); 
      bundle.putInt("site",position); 
      tabFragment.setArguments(bundle); 
      return tabFragment; 
     } 

     @Override 
     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
      View layout = inflater.inflate(R.layout.fragment_tab,container,false); 
      TextView textViewTab = (TextView) layout.findViewById(R.id.textViewTab); 
      Bundle bundle = getArguments(); 
      if (bundle!=null){ 
       textViewTab.setText("Current Tab is" + bundle.getInt("site")); 

      } 
      return layout; 
     } 
    } 

マイフラグメントアダプタルックスこのように:

class TabPagerAdaptor extends FragmentPagerAdapter{ 

     String[] tab_names; 
     public TabPagerAdaptor(FragmentManager fm) { 
      super(fm); 
      tab_names=getResources().getStringArray(R.array.feed_names); 
     } 

     @Override 
     public Fragment getItem(int position) { 
      TabFragment tabFragment = TabFragment.getInstance(position); 
      return tabFragment; 
     } 

     @Override 
     public CharSequence getPageTitle(int position) { 

      return tab_names[position]; 
     } 

     @Override 
     public int getCount() { 
      return 2; 
     } 


    } 

、これは私がタブを呼び出しています方法です:

mViewPager= (ViewPager) findViewById(R.id.pager); 
    mViewPager.setAdapter(new TabPagerAdaptor(getSupportFragmentManager())); 
    mTabs = (SlidingTabLayout) findViewById(R.id.tabs); 
    mTabs.setViewPager(mViewPager); 

しかし、私は、コードを実行したとき、私はTextViewには二つのタブが正常に動作しているにもかかわらず表示されて見つけることができません。

+0

水平でない垂直である必要があり、あなたはViewPagerアダプタを設定しているコードを投稿することができますか? –

+0

私はコード – nathandrake

答えて

0

ViewPagerの高さは、あなたのXMLで0dpあるので、あなたは、あなたのTextViewを表示することはできません -

<android.support.v4.view.ViewPager 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/pager" 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     /> 

あなたがwrap_contentmatch_parentのいずれかにそれを変更する必要があります - あなたのLinearLayout年代、また

<android.support.v4.view.ViewPager 
      xmlns:android="http://schemas.android.com/apk/res/android" 
      android:id="@+id/pager" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 

    /> 

方向はhorizontal、幅はSlidingTabLayoutmatch_parentです。 SlidingTabLayoutは画面全体の幅を占めており、表示する余裕はありませんViewpagerです。

あなたのLinearLayoutの向きは

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical"> 
    <com.example.musicisfun.allaboutfootball.tabs.SlidingTabLayout 
     android:layout_width="match_parent" 
     android:id="@+id/tabs" 
     android:layout_height="wrap_content"> 
    </com.example.musicisfun.allaboutfootball.tabs.SlidingTabLayout> 

    <android.support.v4.view.ViewPager 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/pager" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     /> 

</LinearLayout> 
+0

を更新しました。私はmatch_parentに変更を加えましたが、それと同じ結果です。 – nathandrake

+0

答えを編集しました。 –

+0

私はそれを垂直に設定しようとしていたときにスタジオがエラーを出していたので水平にしましたが、今は働いています。 – nathandrake

関連する問題