Intereting Posts
Любой способ скрыть элементы из webview? (андроид) Как получать многоадресные пакеты на Android Как разделить растровое изображение на части, которые также являются растровыми изображениями Android: как нажать кнопку над мягкой клавиатурой Android Studio не может запускать приложение на устройстве: застрял на «Ожидание процесса: <проект>» Android 4.1.2 браузер по умолчанию – проблема рендеринга с отключенными полями ввода Как программно отключить TextView maxLines? IllegalArgumentException в StatFs в внутреннем потоке WebViewCore Как создать иерархию файлов в каталоге Androids / data / data / pkg / files? RelativeLayout внутри LinearLayout? «Ожидание отладчика для подключения», даже если он не работает в режиме отладки Андроид игры, холст или opengl? Планирование плагина камеры cordova с прозрачным наложением Сохранение секретного ключа в KeyStore без ProtectionParameter Выполнить код в основном потоке в Android без доступа к активности?

Divider не работает для TitlePageIndicator с viewpagerindicator и actionbarsherlock

Я заметил, что с последней версией ViewPagerIndicator поддерживаются разделители стилей ICS, я пытался следить за проблемой и решением, но независимо от того, что я делаю, я не могу заставить делитель отображать мои параметры на панели действий для TitlePageIndicator. Я добавил IcsLayout в качестве контейнера, поставлю разделитель, showDividers и другие свойства, но до сих пор ничего не получаю. Вот мой макет (как ни странно, если я переключу IcsLayout на индикатор индикатора просмотра, приложение выйдет из строя):

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

Solutions Collecting From Web of "Divider не работает для TitlePageIndicator с viewpagerindicator и actionbarsherlock"

Вам нужно объявить параметры разделителя в стилях, а не в макете 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> 

В манифесте для вашей деятельности:

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

Ниже приведены фрагменты кода в основном на сайте Android Developer . Существует также очень хороший пример приложения / проекта.

Используйте ViewPage в качестве контейнера для вашего макета, например res / layout / 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 в свой класс, добавьте и расширьте FragmentPagerAdapter или FragmentStatePagerAdapter из библиотеки поддержки, например:

 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; } } } 

Вот и все. Разделители будут представлены ViewPager для вас. Вам не нужно добавлять их самостоятельно.