У меня есть следующее простое приложение с 3 вкладками:
Я хочу удалить тень из панели приложений и добавить тень на табуляцию. Я пробовал несколько вещей, таких как android:elevation
или добавление <item name="elevation">0dp</item>
в AppTheme или использование <item name="android:windowContentOverlay">@null</item>
. Ничего не работает У меня по-прежнему есть тень под панелью приложения (где указано "Мое приложение"), а на вкладках нет тени (где указано "СТРАНИЦА 1", "СТРАНИЦА 2", "СТРАНИЦА 3").
Это мои XML файлы:
style.xml:
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Base.Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="elevation">0dp</item>
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
<!-- Style for a tab that displays a category name -->
<style name="CategoryTab" parent="Widget.Design.TabLayout">
<item name="tabIndicatorColor">@android:color/white</item>
<item name="tabSelectedTextColor">@android:color/holo_purple</item>
<item name="tabTextAppearance">@style/CategoryTabTextAppearance</item>
</style>
<!-- Text appearance style for a category tab -->
<style name="CategoryTabTextAppearance" parent="TextAppearance.Design.Tab">
<item name="android:textColor">#000000</item>
</style>
</resources>
это файл activity_main.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/primary_color"
android:orientation="vertical"
tools:context="com.example.barebones.barebones.MainActivity">
<android.support.design.widget.TabLayout
android:id="@+id/tabs"
style="@style/CategoryTab"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:elevation="15dp"/>
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:elevation="10dp"/>
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="TextView" />
</LinearLayout>
добавить Elevation
в AppBarLayout
, как показано ниже
getSupportActionBar().setElevation(0);
Добавляя тень к вашему табло, просто добавьте возвышение к вашему табло. а также для информации читайте Материал-Дизайн.
android:background="?attr/colorPrimary"
android:elevation="15dp"
<android.support.design.widget.AppBarLayout
android:id="@+id/appBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:elevation="0dp">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="56dp"
app:titleTextColor="@android:color/white" />
</android.support.design.widget.AppBarLayout>
<include layout="@layout/content_tablayout" />
Используйте app:elevation="0dp"
чтобы удалить тень. Это всегда работало для меня. Надеюсь, это работает для вас.
А также программно,
appBar.setOutlineProvider(null);
AppBarLayout
? Я просто написал это в своей основной деятельности вonCreate