Это мой код в основном действии
public class FilterActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_filter);
// Get the ViewPager and set it's PagerAdapter so that it can display items
ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager);
PageAdapter pageAdapter = new PageAdapter(getSupportFragmentManager(), FilterActivity.this);
viewPager.setAdapter(pageAdapter);
// Give the TabLayout the ViewPager
final TabLayout tabLayout = (TabLayout) findViewById(R.id.sliding_tabs);
tabLayout.setupWithViewPager(viewPager);
}
}
А это мой код в XML
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<include
android:id="@+id/app_bar"
layout="@layout/app_bar">
</include>
<android.support.design.widget.TabLayout
android:id="@+id/sliding_tabs"
android:layout_width="fill_parent"
style="@style/MyCustomTabLayout"
android:layout_height="48dp"/>
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="0px"
android:layout_weight="1"
android:background="@android:color/white" />
</LinearLayout>
Я хочу изменить цвет фона одной вкладки, когда она выбрана
android
android-tabs
android-tablayout
Джоэл Лара
источник
источник
tabLayout.setBackgroundColor(colorInt)
. Если вам это нужно для каждой вкладки, вы можете извлечь ребенок из вашего TabLayoutВы можете попробовать это:
В вашем фоновом xml файле:
источник
Добавить атрибут в xml:
И создайте в папке с возможностью рисования tab_color_selector.xml
источник
Вы пробовали проверить API ?
Вам нужно будет создать прослушиватель для
OnTabSelectedListener
события, затем, когда пользователь выбирает любую вкладку, вы должны проверить, является ли она правильной, затем изменить цвет фона, используяtabLayout.setBackgroundColor(int color)
, или, если это неправильная вкладка, убедитесь, что вы вернулись к снова нормальный цвет тем же методом.источник
android:background=FF0000
Вы можете получить его в xml.
источник
Поскольку я нашел лучший и подходящий вариант для меня, он также будет работать с анимацией.
Вы можете использовать
indicator
его как фон.Вы можете установить
app:tabIndicatorGravity="stretch"
атрибут для использования в качестве фона.Пример:
Надеюсь, это поможет вам.
источник
app:tabIndicatorColor
@MindRoasterMirВы можете изменить цвет фона или ряби на каждой вкладке следующим образом:
источник
После некоторой возни вот как я получил желаемый вид (по крайней мере, в эмуляторе), и он сохраняет эффект ряби.
И
@drawable/tab_selector
:К вашему сведению: это то, что показал эмулятор до того, как я добавил
color
аргумент@drawable/tab_selector
:источник
Вы можете изменить цвет фона вкладки с помощью этого атрибута
источник
Один из способов найти такой индикатор вкладки:
Хитрость заключается в следующем:
Это также заботится о плавной анимации при переключении вкладок.
источник
Одно из самых простых решений - изменить colorPrimary из файла colors.xml.
источник