原创不易,转发请注明转发,并附上原文地址:http://blog.csdn.net/z736232402/article/details/51531231
先上图:
这是我遇到的第一个坑。跟着网上一大堆的教程,设置一大堆后,发现toolbar下的navigationIcon居然向上偏移了,刚开始以为是图标偏移,后来设置了toolbar的背景色后发现,是整个toolbar上移了,找了很久后,想到我的项目一直用的都是沉浸式,用fitsSystemWindows适应,想网上的例子应该不会设置这个,就把这个设置为false,勉强解决了点,但是,还是有点问题
上拉的时候,发现到了原地方后还能上拉,又变成原来的样子了,不一样的是,图标和文字一样高了。
然后想了下,跟之前的沉浸式没设置fitsSystemWindows一样的,于是,给AppBarLayout设置了下fitsSystemWindows为true就行了,CoordinatorLayout要不要设置无所谓,但是如果只设置了CoordinatorLayout,没设置AppBarLayout,顶部会多出一个状态栏高度的空格。然后,就是接下来的问题了。
其他都ok就是顶部状态栏是主题色的,不是图片的颜色,拉动的时候,发现中间是有的。找了好久,后来在copy了别人的代码过来看可以的时候,发现,imageview要也要设置fitsSystemWindows为true,问题终于解决了。上最后成功的图片。
当然,这些的前提下是设置了沉浸式。还有就是toolbar的app:layout_collapseMode="pin",如果没设置为pin,toolbar就也会滚上去。
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initWindow(); } @TargetApi(19) private void initWindow() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { final Window window = getWindow(); window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); } } }最后,附上点代码吧
这是xml布局
<?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" android:layout_width="match_parent" android:layout_height="match_parent" > <android.support.design.widget.AppBarLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:fitsSystemWindows="true" > <android.support.design.widget.CollapsingToolbarLayout android:id="@+id/collapsing_toolbar" android:layout_width="match_parent" app:title="hello" android:layout_height="match_parent" app:contentScrim="?attr/colorPrimary" app:expandedTitleMarginEnd="64dp" app:expandedTitleMarginStart="48dp" app:layout_scrollFlags="scroll|exitUntilCollapsed"> <ImageView android:id="@+id/backdrop" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_collapseMode="parallax" android:scaleType="centerCrop" android:fitsSystemWindows="true" android:src="@mipmap/bg" android:transitionName="mu"/> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" app:navigationIcon="@drawable/sl_go_back" app:collapseIcon="@drawable/sl_go_back" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" app:layout_collapseMode="pin" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> </android.support.design.widget.CollapsingToolbarLayout> </android.support.design.widget.AppBarLayout> <android.support.v4.widget.NestedScrollView android:layout_width="match_parent" android:layout_height="wrap_content" app:layout_behavior="@string/appbar_scrolling_view_behavior"> <android.support.v7.widget.LinearLayoutCompat android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:paddingBottom="8dp" android:paddingLeft="8dp" android:paddingTop="8dp" app:layout_behavior="@string/appbar_scrolling_view_behavior" app:showDividers="middle" > <!--<android.support.v7.widget.Toolbar--> <!--app:layout_collapseMode="pin"--> <!--app:navigationIcon="@drawable/sl_go_back"--> <!--android:background="@color/theme_color"--> <!--app:titleTextColor="@color/material_white_normal"--> <!--android:titleTextColor="@color/material_white_normal"--> <!--android:layout_width="match_parent"--> <!--android:layout_height="?attr/actionBarSize"--> <!-->--> <!--</android.support.v7.widget.Toolbar>--> <android.support.v7.widget.LinearLayoutCompat style="@style/profile_layout_style" > <TextView style="@style/profile_text_info_style" android:text="帐号"/> <TextView android:id="@+id/tv_account" style="@style/profile_text_edit_style" android:text="15948544852"/> </android.support.v7.widget.LinearLayoutCompat> <LinearLayout style="@style/profile_layout_style" > <TextView style="@style/profile_text_info_style" android:text="电话"/> <TextView android:id="@+id/tv_phone" style="@style/profile_text_edit_style" android:text="15948544852"/> </LinearLayout> <LinearLayout style="@style/profile_layout_style" > <TextView style="@style/profile_text_info_style" android:text="邮箱"/> <TextView android:id="@+id/tv_mail" style="@style/profile_text_edit_style" android:text="15948544852"/> </LinearLayout> <LinearLayout style="@style/profile_layout_style" > <TextView style="@style/profile_text_info_style" android:text="昵称"/> <TextView android:id="@+id/tv_nickname" style="@style/profile_text_edit_style" android:text="15948544852"/> </LinearLayout> <LinearLayout style="@style/profile_layout_style" > <TextView style="@style/profile_text_info_style" android:text="性别"/> <TextView android:id="@+id/tv_sex" style="@style/profile_text_edit_style" android:text="15948544852"/> </LinearLayout> <LinearLayout style="@style/profile_layout_style" > <TextView style="@style/profile_text_info_style" android:text="生日"/> <TextView android:id="@+id/tv_birth" style="@style/profile_text_edit_style" android:text="15948544852"/> </LinearLayout> <LinearLayout style="@style/profile_layout_style" > <TextView style="@style/profile_text_info_style" android:text="擅长"/> <TextView android:id="@+id/tv_occuption" style="@style/profile_text_edit_style" android:text="15948544852"/> </LinearLayout> <LinearLayout style="@style/profile_layout_style" > <TextView style="@style/profile_text_info_style" android:text="学校"/> <TextView android:id="@+id/tv_school" style="@style/profile_text_edit_style" android:text="15948544852"/> </LinearLayout> <LinearLayout style="@style/profile_layout_style" > <TextView style="@style/profile_text_info_style" android:text="公司"/> <TextView android:id="@+id/tv_company" style="@style/profile_text_edit_style" android:text="15948544852"/> </LinearLayout> <LinearLayout style="@style/profile_layout_style" > <TextView style="@style/profile_text_info_style" android:text="个人说明"/> <TextView android:id="@+id/tv_caption" style="@style/profile_text_edit_style" android:text="15948544852"/> </LinearLayout> </android.support.v7.widget.LinearLayoutCompat> </android.support.v4.widget.NestedScrollView> </android.support.design.widget.CoordinatorLayout>style啥的,也顺便上传了好了
<style name="profile_layout_style"> <item name="android:paddingLeft">8dp</item> <item name="android:paddingTop">8dp</item> <item name="android:paddingBottom">8dp</item> <item name="android:layout_width">match_parent</item> <item name="android:layout_height">wrap_content</item> <item name="android:orientation">horizontal</item> <item name="android:clickable">true</item> <item name="android:background">?android:attr/selectableItemBackground</item> </style> <style name="profile_text_style"> <item name="android:padding">8dp</item> <item name="android:layout_width">wrap_content</item> <item name="android:layout_height">wrap_content</item> <item name="android:textSize">16sp</item> </style> <style name="profile_text_info_style" parent="profile_text_style"> </style> <style name="profile_text_edit_style" parent="profile_text_style"> <item name="android:drawablePadding">8dp</item> <item name="android:layout_weight">1</item> <item name="android:gravity">right|center</item> </style>主题将fitsSystemWindows设置为false
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <!-- Customize your theme here. --> <item name="android:fitsSystemWindows">false</item> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> </style>