37

何らかの理由で、標高属性がマテリアル デザイン サポート ライブラリの新しい TabLayout で機能していないようです。何か案は?XML:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

<android.support.design.widget.TabLayout
    android:id="@+id/tab_layout"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:elevation="6dp" />

<android.support.v4.view.ViewPager
    android:id="@+id/view_pager"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1" />
</LinearLayout>

親フラグメントで次のように接続します。

ViewPager viewPager = (ViewPager) view.findViewById(R.id.view_pager);
TabLayout tabLayout = (TabLayout) view.findViewById(R.id.tab_layout);
AppPagerAdapter appPagerAdapter = new AppPagerAdapter(getChildFragmentManager());
viewPager.setAdapter(appPagerAdapter);
tabLayout.setupWithViewPager(viewPager);

画像: 関連画像

アクティビティにはツールバーがありますが、これはフラグメントの外にあり、タブレイアウトの影を持つ機能に影響を与えるべきではありません:

関連するアクティビティ 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:orientation="vertical"
tools:context="com.bluckapps.appinfomanager.ui.MainActivity">

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="?attr/colorPrimary"
    android:elevation="6dp"
    android:minHeight="?attr/actionBarSize"
    tools:ignore="UnusedAttribute" />

<FrameLayout
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1" />

</LinearLayout>
4

5 に答える 5

80

影を表示するには、TabLayout に背景を設定する必要があります。ウィンドウの背景と同じ色にすることができます (アルファなしの単色である限り)。

<android.support.design.widget.TabLayout
    android:id="@+id/tab_layout"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:elevation="6dp"
    android:background="@color/white" />
于 2015-08-02T22:01:05.923 に答える
7

ToolBarで使用することになっていますTabLayout。次に、両方を の中に入れてAppBarLayout、影を得ることができます。これは Lollipop+ でのみ機能します。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:orientation="vertical">

    <android.support.design.widget.AppBarLayout
        android:id="@+id/appbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <android.support.v7.widget.Toolbar
            style="@style/ToolBarStyle"
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="?attr/colorPrimary"
            android:minHeight="@dimen/abc_action_bar_default_height_material"/>

        <android.support.design.widget.TabLayout
            android:id="@+id/tab_layout"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize" />
    </android.support.design.widget.AppBarLayout>

    <android.support.v4.view.ViewPager
        android:id="@+id/view_pager"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1" />
</LinearLayout>

http://inthecheesefactory.com/blog/android-design-support-library-codelab/enを参照してください。

于 2015-07-06T15:57:46.383 に答える
2

アクティビティのコンテナー レイアウトとしてCoordinatorLayoutを使用し、TabLayout を AppBarLayout のすぐ下に配置する必要があります。Material Design 仕様によると、使用する必要があります

android:elevation="4dp"

昇格し、TabLayout を AppBarLayout の一部にします。また、標高は v21 (5.0) 以降でのみ表示されることに注意してください。

于 2015-07-12T19:06:18.453 に答える
-6

上記のすべての回答がうまくいかなかったので、次のことがわかりました。

app:tabIndicatorHeight="4dp"
app:tabIndicatorColor="@color/colorAccent"

じゃあ大丈夫!

于 2016-04-19T07:27:00.553 に答える