android新特性:使用CollapsingToolbarLayout實(shí)現(xiàn)折疊效果及問題解決

CollapsingToolbarLayout作用是提供了一個可以折疊的Toolbar碉熄,它繼承至FrameLayout似嗤,給它設(shè)置layout_scrollFlags就可以實(shí)現(xiàn)折疊效果速缆!

  • 效果展示:
20170209104448181.gif
  • 引入相對使用的庫

    compile 'com.android.support:appcompat-v7:23.3.0'
    compile 'com.android.support:design:23.3.0'
    compile 'com.android.support:support-v4:23.3.0'

    compile 'com.jakewharton:butterknife:7.0.1'
    //沉浸狀態(tài)欄
    compile 'com.jaeger.statusbaruitl:library:1.1.1'
    //glide圖片加載
    compile 'jp.wasabeef:glide-transformations:2.0.1'
  • 首先查看布局:
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/coordinator_Layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="cn.hnshangyu.coordinatorlayout.MainActivity">

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

        <android.support.design.widget.CollapsingToolbarLayout
            android:id="@+id/collapsingToolbarLayout"
            android:layout_width="match_parent"
            android:layout_height="300dp"
            app:collapsedTitleTextAppearance="@style/ToolBarTitleText"
            app:contentScrim="#46a8ba"
            app:expandedTitleMarginEnd="48dp"
            app:expandedTitleMarginStart="48dp"
            app:expandedTitleTextAppearance="@style/transparentText"
            app:layout_scrollFlags="scroll|exitUntilCollapsed">
            <!--設(shè)置layout_scrollFlags保證CollapsingToolbarLayout能滾動-->
            <!--app:layout_scrollFlags="scroll|exitUntilCollapsed"-->


            <LinearLayout
                android:id="@+id/head_layout"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="vertical"
                app:layout_collapseMode="pin"
                app:layout_collapseParallaxMultiplier="0.7">

                <RelativeLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="50dp"
                    android:padding="20dp">

                    <LinearLayout
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignParentLeft="true"
                        android:layout_centerVertical="true"
                        android:orientation="vertical">

                        <TextView
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="黃曉果"
                            android:textColor="#ffffff"
                            android:textSize="16sp"
                            android:textStyle="bold" />

                        <TextView
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_marginTop="5dp"
                            android:lineSpacingMultiplier="1.3"
                            android:text="我很喜歡你懂扼,像你媽打你,沒有道理;\n像放出的屁嘹锁,身不由己葫录。"
                            android:textColor="#ffffff"
                            android:textSize="13sp"
                            android:textStyle="bold" />
                    </LinearLayout>

                    <ImageView
                        android:id="@+id/head_iv"
                        android:layout_width="50dp"
                        android:layout_height="50dp"
                        android:layout_alignParentRight="true"
                        android:layout_centerVertical="true"
                        android:scaleType="centerCrop" />
                </RelativeLayout>

                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="20dp"
                    android:layout_marginRight="40dp"
                    android:ellipsize="end"
                    android:lineSpacingMultiplier="1.3"
                    android:maxLines="2"
                    android:text="萌逼的臉是來親的,帥逼的臉是用來看的领猾,逗逼的臉是用來笑的米同,傻逼的臉是用來哭的骇扇,偏偏就你的臉是用來踢的。"
                    android:textColor="#ffffff"
                    android:textSize="12sp" />

                <RelativeLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="10dp"
                    android:padding="20dp">

                    <TextView
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginLeft="20dp"
                        android:layout_marginRight="40dp"
                        android:ellipsize="end"
                        android:lineSpacingMultiplier="1.3"
                        android:maxLines="2"
                        android:text="今天的你對我愛搭不理面粮,\n明天的我還來找你少孝。"
                        android:textColor="#ffffff"
                        android:textSize="12sp" />

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignParentRight="true"
                        android:layout_centerVertical="true"
                        android:background="@drawable/setting_bg"
                        android:paddingBottom="3dp"
                        android:paddingLeft="6dp"
                        android:paddingRight="6dp"
                        android:paddingTop="3dp"
                        android:text="設(shè)置"
                        android:textColor="#ffffff"
                        android:textSize="12sp" />
                </RelativeLayout>
            </LinearLayout>
            <!--Toolbar放在下面不然會被擋住-->
            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                app:layout_collapseMode="pin"
                app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
                app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" />
        </android.support.design.widget.CollapsingToolbarLayout>


        <android.support.design.widget.TabLayout
            android:id="@+id/toolbar_tab"
            android:layout_width="match_parent"
            android:layout_height="48dp"
            android:layout_gravity="bottom"
            android:background="#ffffff"
            android:fillViewport="false"
            app:layout_scrollFlags="scroll"
            app:tabIndicatorColor="#0835f8"
            app:tabIndicatorHeight="2.0dp"
            app:tabSelectedTextColor="#0835f8"
            app:tabTextColor="#151515">

            <!--指示器顏色-->
            <!-- app:tabIndicatorColor="#0835f8"-->

            <!--tab條目中字體顏色-->
            <!--app:tabSelectedTextColor="#0835f8"-->

            <android.support.design.widget.TabItem
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:icon="@drawable/tab_selector" />
            <!--布局選擇器-->
            <!--android:icon="@drawable/tab_selector"-->
            <android.support.design.widget.TabItem
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:text="頭條" />

            <android.support.design.widget.TabItem
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:text="社交" />

            <android.support.design.widget.TabItem
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:text="直播" />

            <android.support.design.widget.TabItem
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:text="約嗎" />


        </android.support.design.widget.TabLayout>

    </android.support.design.widget.AppBarLayout>

    <android.support.v4.widget.NestedScrollView
        android:id="@+id/nsv"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fillViewport="true"
        android:scrollbars="none"
        app:layout_behavior="@string/appbar_scrolling_view_behavior">

        <android.support.v4.view.ViewPager
            android:id="@+id/main_vp_container"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:layout_behavior="@string/appbar_scrolling_view_behavior" />

    </android.support.v4.widget.NestedScrollView>
    <!--在CoordinatorLayout中只要是能滑動控件的都需要設(shè)置layout_behavior-->
    <!--app:layout_behavior="@string/appbar_scrolling_view_behavior"-->
</android.support.design.widget.CoordinatorLayout>

內(nèi)部特殊的屬性都有相對注釋:




    我們在CollapsingToolbarLayout中設(shè)置了一個LinearLayout和一個Toolbar。
    并把這個CollapsingToolbarLayout放到AppBarLayout中作為一個整體熬苍。
    
1稍走、在CollapsingToolbarLayout中:

我們設(shè)置了layout_scrollFlags:關(guān)于它的值我這里再說一下:
scroll - 想滾動就必須設(shè)置這個。

enterAlways - 實(shí)現(xiàn)quick return效果, 當(dāng)向下移動時柴底,立即顯示View(比如Toolbar)婿脸。

exitUntilCollapsed - 向上滾動時收縮View,但可以固定Toolbar一直在上面似枕。

enterAlwaysCollapsed - 當(dāng)你的View已經(jīng)設(shè)置minHeight屬性又使用此標(biāo)志時盖淡,
你的View只能以最小高度進(jìn)入,只有當(dāng)滾動視圖到達(dá)頂部時才擴(kuò)大到完整高度凿歼。

其中還設(shè)置了一些屬性褪迟,簡要說明一下:

contentScrim - 設(shè)置當(dāng)完全CollapsingToolbarLayout折疊(收縮)后的背景顏色。

expandedTitleMarginStart - 設(shè)置擴(kuò)張時候(還沒有收縮時)title向左填充的距離答憔。

layout_collapseMode (折疊模式) - 有兩個值:

pin -  設(shè)置為這個模式時味赃,當(dāng)CollapsingToolbarLayout完全收縮后,Toolbar還可以保留在屏幕上虐拓。

parallax - 設(shè)置為這個模式時心俗,在內(nèi)容滾動時,CollapsingToolbarLayout中的View(比如ImageView)也可以同時滾動蓉驹,
實(shí)現(xiàn)視差滾動效果城榛,通常和layout_collapseParallaxMultiplier(設(shè)置視差因子)搭配使用。

layout_collapseParallaxMultiplier(視差因子) - 設(shè)置視差滾動因子态兴,值為:0~1狠持。 
  • 這里使用到了部分樣式:
 <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>
    </style>

    <style name="transparentText" parent="TextAppearance.AppCompat.Small">
        <item name="android:textColor">#00000000</item>
    </style>

    <style name="ToolBarTitleText" parent="TextAppearance.AppCompat.Medium">
        <item name="android:textColor">#ffffffff</item>
        <item name="android:textSize">16sp</item>
        <item name="android:textStyle">bold</item>

    </style>

  • 然后就是MainActivity中的代碼設(shè)置了:
package cn.hnshangyu.coordinatorlayout;

import android.annotation.TargetApi;
import android.os.Build;
import android.os.Bundle;
import android.support.design.widget.AppBarLayout;
import android.support.design.widget.CollapsingToolbarLayout;
import android.support.design.widget.CoordinatorLayout;
import android.support.design.widget.TabLayout;
import android.support.v4.view.ViewPager;
import android.support.v4.widget.NestedScrollView;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.Toast;

import com.bumptech.glide.Glide;
import com.bumptech.glide.load.resource.drawable.GlideDrawable;
import com.bumptech.glide.request.animation.GlideAnimation;
import com.bumptech.glide.request.target.SimpleTarget;
import com.jaeger.library.StatusBarUtil;

import butterknife.Bind;
import butterknife.ButterKnife;
import cn.hnshangyu.coordinatorlayout.adapter.ViewPagerAdapter;
import jp.wasabeef.glide.transformations.BlurTransformation;
import jp.wasabeef.glide.transformations.RoundedCornersTransformation;

public class MainActivity extends AppCompatActivity {

    /**
     * ScrollView上半部分
     */
    @Bind(R.id.toolbar)
    Toolbar toolbar;
    /**
     * 頭像
     */
    @Bind(R.id.head_iv)
    ImageView headIv;
    /**
     * CollapsingToolbarLayout內(nèi)部顯示內(nèi)容部分
     */
    @Bind(R.id.head_layout)
    LinearLayout headLayout;
    /**
     * tab分類條目
     */
    @Bind(R.id.toolbar_tab)
    TabLayout toolbarTab;

    @Bind(R.id.app_bar_layout)
    AppBarLayout appBarLayout;
    /**
     * 折疊部分
     */
    @Bind(R.id.collapsingToolbarLayout)
    CollapsingToolbarLayout collapsingToolbarLayout;
    /**
     * ViewPager
     */
    @Bind(R.id.main_vp_container)
    ViewPager mViewPager;
    /**
     * ScrollView
     */
    @Bind(R.id.nsv)
    NestedScrollView nsv;
    /**
     * 整個布局
     */
    @Bind(R.id.coordinator_Layout)
    CoordinatorLayout coordinatorLayout;

    private ViewPagerAdapter myPagerAdapter;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ButterKnife.bind(this);

        //用toolBar替換ActionBar
        setToolBarReplaceActionBar();

        //把title設(shè)置到CollapsingToolbarLayout上
        setTitleToCollapsingToolbarLayout();

        // 給viewpager設(shè)置適配器
        setViewPagerAdapter();

        //tablayout和viewpager建立聯(lián)系
        setTabBindViewPager();

        //設(shè)置毛玻璃效果和沉浸狀態(tài)欄
        loadBlurAndSetStatusBar();

        //設(shè)置頭像
        Glide.with(this).load(R.mipmap.bg).bitmapTransform(new RoundedCornersTransformation(this,
                90, 0)).into(headIv);
    }


    /**
     * 用toolBar替換ActionBar
     */
    private void setToolBarReplaceActionBar() {
        setSupportActionBar(toolbar);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        toolbar.setNavigationOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast.makeText(MainActivity.this, "返回", Toast.LENGTH_LONG).show();
                // onBackPressed();//結(jié)束程序
            }
        });
    }

    /**
     * 使用CollapsingToolbarLayout必須把title設(shè)置到CollapsingToolbarLayout上,
     * 設(shè)置到Toolbar上則不會顯示
     */
    private void setTitleToCollapsingToolbarLayout() {
        appBarLayout.addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener() {
            @Override
            public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) {
                if (verticalOffset <= -headLayout.getHeight() / 2) {
                    collapsingToolbarLayout.setTitle("黃曉果");
                    //使用下面兩個CollapsingToolbarLayout的方法設(shè)置展開透明->折疊時你想要的顏色
                    collapsingToolbarLayout.setExpandedTitleColor(getResources().getColor(android.R.color.transparent));
                    collapsingToolbarLayout.setCollapsedTitleTextColor(getResources().getColor(R.color.colorAccent));
                } else {
                    collapsingToolbarLayout.setTitle("");
                }
            }
        });
    }

    /**
     * 給viewpager設(shè)置適配器
     */
    private void setViewPagerAdapter() {
        myPagerAdapter = new ViewPagerAdapter(getSupportFragmentManager(), this);
        mViewPager.setAdapter(myPagerAdapter);
    }

    /**
     * tablayout和viewpager建立聯(lián)系
     */
    private void setTabBindViewPager() {
        //tablayout和viewpager建立聯(lián)系方式一:tab與viewpager之間的相互綁定
        mViewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener
                (toolbarTab));
        toolbarTab.setOnTabSelectedListener(new TabLayout.ViewPagerOnTabSelectedListener
                (mViewPager));

        //tablayout和viewpager建立聯(lián)系方式二: 使用此方法Tablayout中的TabItem設(shè)置icon無效
        // (android:icon="@drawable/tab_selector" )只能使用 android:text="分享"
        //  toolbarTab.setupWithViewPager(mViewPager);
    }


    /**
     * 設(shè)置毛玻璃效果和沉浸狀態(tài)欄
     */
    private void loadBlurAndSetStatusBar() {
        //目的是讓狀態(tài)欄半透明
//         StatusBarUtil.setTranslucent(MainActivity.this, StatusBarUtil.DEFAULT_STATUS_BAR_ALPHA);
        //目的是讓狀態(tài)欄全透明
        StatusBarUtil.setTransparent(MainActivity.this);

        Glide.with(this).load(R.mipmap.bg).bitmapTransform(new BlurTransformation(this, 100))
                .into(new SimpleTarget<GlideDrawable>() {
                    @TargetApi(Build.VERSION_CODES.JELLY_BEAN)
                    @Override
                    public void onResourceReady(GlideDrawable resource, GlideAnimation<? super
                            GlideDrawable> glideAnimation) {
                        headLayout.setBackground(resource);
                        coordinatorLayout.setBackground(resource);
                    }
                });

        Glide.with(this).load(R.mipmap.bg).bitmapTransform(new BlurTransformation(this, 100))
                .into(new SimpleTarget<GlideDrawable>() {
                    @Override
                    public void onResourceReady(GlideDrawable resource, GlideAnimation<? super
                            GlideDrawable> glideAnimation) {
                        collapsingToolbarLayout.setContentScrim(resource);
                    }
                });
    }

    //在ActionBar設(shè)置條目
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        String msg = "";
        switch (item.getItemId()) {
            case R.id.webview:
                msg += "博客跳轉(zhuǎn)";
                break;
            case R.id.weibo:
                msg += "微博跳轉(zhuǎn)";
                break;
            case R.id.action_settings:
                msg += "設(shè)置";
                break;
        }
        if (!msg.equals("")) {
            Toast.makeText(MainActivity.this, msg, Toast.LENGTH_SHORT).show();
        }
        return super.onOptionsItemSelected(item);
    }

}

代碼內(nèi)部有詳細(xì)注釋



【注】:使用CollapsingToolbarLayout時必須把title設(shè)置到CollapsingToolbarLayout上瞻润,設(shè)置到Toolbar上不會顯示喘垂。
即:
mCollapsingToolbarLayout.setTitle(" ");

該變title的字體顏色:

擴(kuò)張時候的title顏色:mCollapsingToolbarLayout.setExpandedTitleColor();

收縮后在Toolbar上顯示時的title的顏色:mCollapsingToolbarLayout.setCollapsedTitleTextColor();

這個顏色的過度變化其實(shí)CollapsingToolbarLayout已經(jīng)幫我們做好,它會自動的過度
  • ViewPagerAdapter:
package cn.hnshangyu.coordinatorlayout.adapter;

import android.content.Context;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;

import cn.hnshangyu.coordinatorlayout.fragment.PageFragment;

public class ViewPagerAdapter extends FragmentPagerAdapter {

    final int PAGE_COUNT = 5;
    private String tabTitles[] = new String[]{"", "頭條", "社交", "直播", "約嗎"};
    private Context context;

    public ViewPagerAdapter(FragmentManager fm, Context context) {
        super(fm);
        this.context = context;
    }

    @Override
    public Fragment getItem(int position) {
        return PageFragment.newInstance(position + 1);
    }

    @Override
    public int getCount() {
        return PAGE_COUNT;
    }

    @Override
    public CharSequence getPageTitle(int position) {
        return tabTitles[position];
    }
}
  • PageFragment:
package cn.hnshangyu.coordinatorlayout.fragment;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import java.util.ArrayList;
import java.util.List;

import butterknife.Bind;
import butterknife.ButterKnife;
import cn.hnshangyu.coordinatorlayout.R;
import cn.hnshangyu.coordinatorlayout.adapter.MyAdapter;


public class PageFragment extends Fragment {
    public static final String ARG_PAGE = "PAGE_NUM";
    @Bind(R.id.recyclerView)
    RecyclerView recyclerView;
    private int mPage;

    public static PageFragment newInstance(int page) {
        Bundle args = new Bundle();
        args.putInt(ARG_PAGE, page);
        PageFragment pageFragment = new PageFragment();
        pageFragment.setArguments(args);
        return pageFragment;
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        mPage = getArguments().getInt(ARG_PAGE);
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle
            savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_page, null);
        ButterKnife.bind(this, view);
        // 創(chuàng)建一個線性布局管理器

        LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity());

        // 設(shè)置布局管理器

        recyclerView.setLayoutManager(layoutManager);

        List<String> list = new ArrayList<String>();
        for (int i = 0; i < 100; i++) {
            list.add("黃曉果" + i);
        }
        recyclerView.setAdapter(new MyAdapter(list));

        return view;
    }

    @Override
    public void onDestroyView() {
        super.onDestroyView();
        ButterKnife.unbind(this);
    }
}

  • MyAdapter:
package cn.hnshangyu.coordinatorlayout.adapter;

import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import java.util.List;


public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
    // 數(shù)據(jù)集
    private List<String> mDataset;

    public MyAdapter(List<String> dataset) {
        super();
        mDataset = dataset;
    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {

        // 創(chuàng)建一個View绍撞,簡單起見直接使用系統(tǒng)提供的布局正勒,就是一個TextView

        View view = View.inflate(viewGroup.getContext(), android.R.layout.simple_list_item_1, null);

        return new ViewHolder(view);

    }

    @Override
    public void onBindViewHolder(ViewHolder holder, int i) {

        // 綁定數(shù)據(jù)到ViewHolder上

        holder.mTextView.setText(mDataset.get(i));

    }

    @Override
    public int getItemCount() {

        return mDataset.size();

    }

    class ViewHolder extends RecyclerView.ViewHolder {

        public TextView mTextView;

        public ViewHolder(View itemView) {

            super(itemView);

            mTextView = (TextView) itemView;

        }

    }

}


  • menu_main:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context=".MainActivity">

    <item
        android:id="@+id/webview"
        android:icon="@mipmap/icon_blog"
        android:orderInCategory="80"
        android:title="web"
        app:showAsAction="ifRoom" />

    <item
        android:id="@+id/weibo"
        android:icon="@mipmap/icon_weibo"
        android:orderInCategory="90"
        android:title="weibo"
        app:showAsAction="ifRoom" />

    <item
        android:id="@+id/action_settings"
        android:orderInCategory="100"
        android:title="設(shè)置"
        app:showAsAction="never" />
</menu>
  • 問題一:

    異常信息:

Caused by: java.lang.IllegalStateException: This Activity already has an action bar supplied by the window decor. Do not request Window.FEATURE_SUPPORT_ACTION_BAR and set windowActionBar to false in your theme to use a Toolbar instead.

問題原因:
當(dāng)在activity中調(diào)用了setSupportActionBar(toolbar);

20170209111040427.png

同時,AndroidManifest.xml 對應(yīng)的Activity標(biāo)簽的android:theme為:

android:theme="@style/AppTheme" >
20170209111137016.png

且傻铣,style資源文件中的parent為

parent="Theme.AppCompat.Light.DarkActionBar
20170209111203412.png

就會報(bào)這個異常章贞。

問題分析:

Using Theme.AppCompat.Light tells Android that you want the framework to provide an ActionBar for you. However, you are creating your own ActionBar (a Toolbar), so you are giving the framework mixed signals as to where you want the ActionBar to come from.

解決方法:

1、在style配置文件中加上

<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>

或者非洲,將parent改為

parent="Theme.AppCompat.Light.NoActionBar"

2阱驾、在AndroidManifest.xml 對應(yīng)的Activity標(biāo)簽的android:theme引用該style中的修改的主題

  • 問題二:

問題:

    當(dāng)成功運(yùn)行程序后如果在6.0及以上的機(jī)子上運(yùn)行會出現(xiàn)頂部狀態(tài)欄顯示系統(tǒng)顏色就谜,這里是   coordinatorLayout.setBackground(resource);這行代碼無效的情況

解決方式:

將編譯版本,修改到23且 compile 'com.jaeger.statusbaruitl:library:1.1.1'版本為1.1.1里覆,如果設(shè)置為現(xiàn)在最高版本1.3.5會出現(xiàn),編譯不通過缆瓣!

 compileSdkVersion 23
buildToolsVersion "23.0.3"
defaultConfig {
    applicationId "cn.hnshangyu.coordinatorlayout"
    minSdkVersion 15
    targetSdkVersion 23
    versionCode 1
    versionName "1.0"
    renderscriptTargetApi 19
    renderscriptSupportModeEnabled true
}

Demo下載地址:http://download.csdn.net/download/huangxiaoguo1/9750621

好了喧枷,到這里就結(jié)束了,歡迎各位指教.......

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末弓坞,一起剝皮案震驚了整個濱河市隧甚,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌渡冻,老刑警劉巖戚扳,帶你破解...
    沈念sama閱讀 222,104評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異族吻,居然都是意外死亡帽借,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評論 3 399
  • 文/潘曉璐 我一進(jìn)店門超歌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來砍艾,“玉大人,你說我怎么就攤上這事巍举〈嗪桑” “怎么了?”我有些...
    開封第一講書人閱讀 168,697評論 0 360
  • 文/不壞的土叔 我叫張陵懊悯,是天一觀的道長蜓谋。 經(jīng)常有香客問我缎浇,道長岗喉,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,836評論 1 298
  • 正文 為了忘掉前任条摸,我火速辦了婚禮欠窒,結(jié)果婚禮上覆旭,老公的妹妹穿的比我還像新娘。我一直安慰自己岖妄,他們只是感情好型将,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,851評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著荐虐,像睡著了一般七兜。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上福扬,一...
    開封第一講書人閱讀 52,441評論 1 310
  • 那天腕铸,我揣著相機(jī)與錄音惜犀,去河邊找鬼。 笑死狠裹,一個胖子當(dāng)著我的面吹牛虽界,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播涛菠,決...
    沈念sama閱讀 40,992評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼莉御,長吁一口氣:“原來是場噩夢啊……” “哼俗冻!你這毒婦竟也來了琅关?” 一聲冷哼從身側(cè)響起都毒,我...
    開封第一講書人閱讀 39,899評論 0 276
  • 序言:老撾萬榮一對情侶失蹤金抡,失蹤者是張志新(化名)和其女友劉穎榛瓮,沒想到半個月后粹懒,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,457評論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡导街,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,529評論 3 341
  • 正文 我和宋清朗相戀三年象颖,在試婚紗的時候發(fā)現(xiàn)自己被綠了陶冷。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片埂伦。...
    茶點(diǎn)故事閱讀 40,664評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡煞额,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出沾谜,到底是詐尸還是另有隱情膊毁,我是刑警寧澤,帶...
    沈念sama閱讀 36,346評論 5 350
  • 正文 年R本政府宣布基跑,位于F島的核電站婚温,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏媳否。R本人自食惡果不足惜栅螟,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,025評論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望篱竭。 院中可真熱鬧力图,春花似錦、人聲如沸室抽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至晓折,卻和暖如春惑朦,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背漓概。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評論 1 272
  • 我被黑心中介騙來泰國打工漾月, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人胃珍。 一個月前我還...
    沈念sama閱讀 49,081評論 3 377
  • 正文 我出身青樓梁肿,卻偏偏與公主長得像,于是被迫代替她去往敵國和親觅彰。 傳聞我的和親對象是個殘疾皇子吩蔑,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,675評論 2 359

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,304評論 25 707
  • 溫舒怡收回思緒,走進(jìn)浴室放水洗臉填抬。梳洗鏡嵌在大理石邊框里烛芬,從臺盆一直延伸到天花板,兩側(cè)淡黃的面板下有隱藏的燈光飒责,金...
    馮路易閱讀 337評論 0 0
  • 在劉先生的提醒下赘娄,本無處安放的周六上午就滿滿地塞在了博物院了,呃呃宏蛉,很高大上吧遣臼,不是博物館哦,才升的級拾并。此刻揍堰,我...
    燕子不飛么閱讀 480評論 0 0
  • 文:ShakespeareSky(莎士比亞斯基) 你總在仰望著那片星空沒有人知道你種下了什么夢在那里,在那璀璨的銀...
    ShakespeareSky閱讀 446評論 0 0
  • 連續(xù)三天的全天班辟灰,今天終于不是全天班了个榕,今天晚班,我早上睡的好晚才起來芥喇,感覺我整個人都很舒服西采。剛好老公也沒上班了...
    一顆有趣的豆閱讀 129評論 2 1