Ini adalah kode saya di aktivitas utama
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);
}
}
Dan ini kode saya di 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>
Saya ingin mengubah warna latar belakang satu tab saat dipilih
android
android-tabs
android-tablayout
Joel Lara
sumber
sumber
tabLayout.setBackgroundColor(colorInt)
. Jika Anda membutuhkannya untuk setiap tab, Anda dapat mengekstrak anak-anak dari TabLayout AndaAnda dapat mencoba ini:
Di file xml latar belakang Anda:
sumber
Tambahkan atribut dalam xml:
Dan buat di folder drawable, tab_color_selector.xml
sumber
Sudahkah Anda mencoba memeriksa API ?
Anda perlu membuat pendengar untuk
OnTabSelectedListener
acara tersebut, kemudian ketika pengguna memilih tab apa pun Anda harus memeriksa apakah itu benar, kemudian mengubah warna latar belakang menggunakantabLayout.setBackgroundColor(int color)
, atau jika itu bukan tab yang benar pastikan Anda mengubah kembali ke warna normal kembali dengan metode yang sama.sumber
android:background=FF0000
Anda dapat memilikinya di xml.
sumber
Karena saya menemukan opsi terbaik dan cocok untuk saya dan itu akan bekerja dengan animasi juga.
Anda dapat menggunakannya
indicator
sendiri sebagai latar belakang.Anda dapat menyetel
app:tabIndicatorGravity="stretch"
atribut untuk digunakan sebagai latar belakang.Contoh:
Semoga bisa membantu Anda.
sumber
app:tabIndicatorColor
@MindRoasterMirAnda dapat mengubah latar belakang atau warna riak setiap Tab seperti ini:
sumber
Setelah beberapa mengotak-atik ini adalah bagaimana saya mendapatkan tampilan yang diinginkan (setidaknya di emulator) dan itu menjaga efek riak.
Dan
@drawable/tab_selector
:FYI: Ini yang ditunjukkan emulator sebelum saya menambahkan
color
argumen ke@drawable/tab_selector
:sumber
Anda dapat mengubah warna latar belakang tab dengan atribut ini
sumber
Salah satu solusi paling sederhana adalah dengan mengubah colorPrimary dari file colors.xml.
sumber