Как удалить тень из панели приложений и добавить тень в TabLayout

1

У меня есть следующее простое приложение с 3 вкладками: Изображение 174551

Я хочу удалить тень из панели приложений и добавить тень на табуляцию. Я пробовал несколько вещей, таких как 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>
Теги:

2 ответа

1

добавить Elevation в AppBarLayout, как показано ниже

getSupportActionBar().setElevation(0);

Добавляя тень к вашему табло, просто добавьте возвышение к вашему табло. а также для информации читайте Материал-Дизайн.

android:background="?attr/colorPrimary"
android:elevation="15dp"
  • 0
    Спасибо, это удалило тень, но как насчет добавления тени на вкладки? ничего не получалось. Кстати, что вы имеете в виду в AppBarLayout ? Я просто написал это в своей основной деятельности в onCreate
  • 0
    привет @Fireio извините за поздний ответ ... Пожалуйста, проверьте ответ.
Показать ещё 1 комментарий
0
<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);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню