8

最新バージョンのViewPagerIndicatorに気付きましたが、ICSスタイルのデバイダはサポートされていますが、問題と解決策に従いましたが、 TitlePageIndicatorのアクションバーに自分のオプションを表示します。コンテナとしてIcsLayoutを追加し、divider、showDividersなどのプロパティを追加しましたが、まだ何も取得していません。 (私はviewpagerインジケータ1、アプリのクラッシュにIcsLayoutを切り替えると、奇妙なことに)ここに私のレイアウトです:コードスニペット後TitlePageIndicatorでviewpagerindicator&actionbarsherlockを使ってデバイダが動作しない

<com.actionbarsherlock.internal.widget.IcsLinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res/com.sosick.android.brink" 
    android:layout_width="match_parent" 
    android:divider="#ffffff" 
    android:showDividers="middle" 
    android:dividerPadding="8dp" 
    android:dividerHeight="10dp" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 

    <com.viewpagerindicator.TitlePageIndicator 
     android:id="@+id/tpi_header" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     textColor="@color/text_light" 
     android:background="@drawable/ab_stacked_solid_brink" 
     app:topPadding="10dp" 
     app:footerPadding="15dp" 
     app:footerColor="#a4ded7" 
     app:footerIndicatorHeight="2dp" 
     app:footerIndicatorStyle="underline" 
     app:footerLineHeight="2dp" 
     app:selectedBold="false" /> 

    <android.support.v4.view.ViewPager 
     android:id="@+id/vp_pages" 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1" /> 

</com.actionbarsherlock.internal.widget.IcsLinearLayout> 
+0

TitleIndicatorで可能かどうかわかりません...? – dariusriggins

+0

達成したいことをよりよく理解するために、スケッチまたはリファレンスを投稿してください。ありがとう。 –

+0

このアプリを見ているなら、Title Pagerの垂直仕切りに気づいてください。それは私が達成しようとしているものです。 http://24.media.tumblr.com/8044b5ed0a7f8ad04468def5973275d7/tumblr_mi5ru5f7fZ1r2wjwko1_1280.png – dariusriggins

答えて

4

レイアウトxmlではなく、スタイルでディバイダパラメータを宣言する必要があります。

../res/values/styles.xml:あなたの活動のマニフェストで

<style name="StyledIndicators" parent="@android:style/Theme.Light"> 
    <item name="vpiIconPageIndicatorStyle">@style/CustomIconIndicator</item> 
</style> 

<style name="CustomIconIndicator" parent="Widget.TabPageIndicator"> 
    <item name="android:divider">@drawable/custom_tab_indicator_divider</item> 
    <item name="android:showDividers">middle</item> 
    <item name="android:dividerPadding">10dp</item> 
</style> 

:TabPageIndicatorで動作するので、私は」彼らがそれを述べるものと思わページを読む

<activity 
     android:name=".SampleIconsDefault" 
     android:label="Icons/Default" 
     android:theme="@style/StyledIndicators"> 
</activity> 
+0

このソリューションにはAPIレベル11が必要ですが、他にAPIレベル8でも機能する方法はありますか? –

0

はmainlyfrom Android Developerサイトです。非常に良いapp/projectのサンプルもあります。

ViewPageをレイアウト用のコンテナとして使用します。解像度/レイアウト/ activity_main.xml:

<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" /> 

」のABSを実装するクラスでActionBar.TabListener、追加およびサポートライブラリ例えば:それです

public class TheDesertFoxActivity extends SherlockFragmentActivity 
     implements ActionBar.TabListener { 

    private AppSectionsPagerAdapter mAppSectionsPagerAdapter; 
    private ViewPager mViewPager; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     mAppSectionsPagerAdapter = new AppSectionsPagerAdapter(getSupportFragmentManager()); 

     // Set up action bar 
     final ActionBar actionBar = getSupportActionBar(); 
     actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 

     // Set up the ViewPager, attaching the adapter 
     mViewPager = (ViewPager) findViewById(R.id.pager); 
     mViewPager.setAdapter(mAppSectionsPagerAdapter); 
     mViewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() { 
      @Override 
      public void onPageSelected(int position) { 
       // When swiping between different app sections, select the corresponding tab 
       actionBar.setSelectedNavigationItem(position); 
      } 
     }); 

     // For each of the sections in the app, add a tab to the action bar 
     for (int i = 0; i < mAppSectionsPagerAdapter.getCount(); i++) { 
      // Create a tab with text corresponding to the page title defined by the adapter. 
      // Also specify this Activity object, which implements the TabListener interface, as the 
      // listener for when this tab is selected. 
      actionBar.addTab(actionBar.newTab() 
        .setText(mAppSectionsPagerAdapter.getPageTitle(i)) 
        .setTabListener(this)); 
     } 
    } 

    public static class AppSectionsPagerAdapter extends FragmentPagerAdapter { 

     public AppSectionsPagerAdapter(FragmentManager fm) { 
      super(fm); 
     } 

     @Override 
     public Fragment getItem(int i) { 
      switch (i) { 

       Fragment fragment = new MyTabsFragment(); 
       Bundle args = new Bundle(); 
       args.putInt(MyTabsFragment.TAB_ID, i); 
       fragment.setArguments(args); 
       return fragment; 
      } 
     } 

     @Override 
     public int getCount() { 
      return <YOUR_TAB_COUNT>; 
     } 
    } 

    public static class MyTabsFragment extends Fragment { 

     public static final String TAB_ID = "tab_id"; 

     @Override 
     public View onCreateView(LayoutInflater inflater, ViewGroup container, 
       Bundle savedInstanceState) { 
      int layoutId = -1; 
      switch (getArguments(getInt(TAB_ID))) { 
       case 0: 
        layoutId = R.layout.fragment_first_tab; 
        break; 
       case 1: 
        layoutId = R.layout.fragment_second_tab; 
        break; 
       ... 
       ... 
       ... 
       default: 
        layoutId = R.layout.fragment_default_tab; 

      } 
      View rootView = inflater.inflate(layoutId, container, false); 
      return rootView; 
     } 
    } 
} 

からFragmentPagerAdapterまたはFragmentStatePagerAdapterを拡張します。区切り文字はViewPagerで置き換えます。自分で追加する必要はありません。

関連する問題