Intereting Posts
Предупреждение: Игнорирование артефакта API Android com.google.android:android:4.1.1.4 Аутентификация Apache HttpClient Digest OnKeyListener не работает на виртуальной клавиатуре Android Studio E / dalvikvm: Не удалось найти класс '.DatabaseHelper', на который ссылается метод .DatabaseManager Как сопоставить координаты кадра для наложения в видении Как показать свое текущее местоположение в Google Map? Кинжал для Android: ввод объекта в график объекта после вызова setContentView ToggleButton в ListView, значение автоматически изменяется при прокрутке Воспроизведение видео в полноэкранном режиме на Android с помощью собственного видеопроигрывателя Создайте дополнительную таблицу в существующем SQLITE (без потери данных) Эмулятор Android не масштабируется до 100% для Mac Book Pro с дисплеем Retina Как получить последнюю позицию просмотра прокрутки, scrollview Отправка объекта из службы в действие (не может быть маршалирована без прав) Как вызвать карту google из моего приложения для Android, например, вызвать адрес электронной почты SQLiteOpenHelper не может вызвать onCreate?

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> 

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