我得到了折叠式工具栏。它内部的图像必须是正方形的,但在具有大屏幕的设备上则不是。如何设置图像,使其始终保持方形,并使图像全宽和高高?
同时必须折叠工具栏,无法固定和冻结它。
活动代码。
<?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:fitsSystemWindows="true">
<android.support.design.widget.AppBarLayout
android:id="@+id/app_bar_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fitsSystemWindows="true"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapsing_toolbar_layout"
android:layout_width="match_parent"
android:layout_height="300dp"
android:background="@android:color/holo_blue_bright"
android:fitsSystemWindows="true"
app:contentScrim="?attr/colorPrimary"
app:expandedTitleMarginEnd="64dp"
app:expandedTitleMarginStart="48dp"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<ImageView
android:id="@+id/friend_activity_image"
android:layout_width="match_parent"
android:layout_height="220dp"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
android:contentDescription="Default Avatar"
android:fitsSystemWindows="true"
android:src="@drawable/avatar"
app:layout_collapseMode="parallax" />
<LinearLayout
android:id="@+id/meta_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:alpha="0.8"
android:background="@android:color/black"
android:orientation="vertical"
android:paddingBottom="16dp"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:paddingTop="16dp">
<TextView
android:id="@+id/friend_activity_tv_name"
style="?android:attr/textAppearanceLarge"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="sans-serif-condensed"
android:paddingBottom="0dp"
android:text="NAME"
android:textColor="#fff"
android:textSize="24sp"
android:textStyle="bold" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/friend_activity_tv_age"
style="?android:attr/textAppearanceSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="AGE"
android:textColor="#8fff"
android:textSize="16sp" />
<TextView
android:id="@+id/friend_activity_tv_country"
style="?android:attr/textAppearanceLarge"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:paddingBottom="0dp"
android:text="COUNTRY"
android:textColor="#8fff"
android:textSize="16sp" />
</LinearLayout>
</LinearLayout>
<!--android:src="@drawable/default_avatar"-->
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:layout_collapseMode="pin" />
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<android.support.v4.widget.NestedScrollView
android:id="@+id/nested_scroll_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipToPadding="false"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.CardView
android:id="@+id/friend_activity_cardview_about"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp">
<android.support.v7.widget.RecyclerView
android:id="@+id/recycler_list_friendDescription"
android:layout_width="match_parent"
android:layout_height="match_parent">
</android.support.v7.widget.RecyclerView>
</android.support.v7.widget.CardView>
<android.support.v7.widget.CardView
android:id="@+id/friend_activity_cardview_buttons_block"
android:layout_below="@+id/friend_activity_cardview_about"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:layout_marginTop="8dp">
<LinearLayout
android:id="@+id/my_profile_linear_likers_visitors"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/friend_activity_btn_add_friend"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:backgroundTint="@android:color/white"
android:paddingLeft="25dp"
android:paddingRight="25dp"
android:text="+ ADD FRIEND"
android:textColor="@color/colorPrimary" />
<Button
android:id="@+id/friend_activity_btn_start_chat"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:backgroundTint="@android:color/white"
android:paddingLeft="25dp"
android:paddingRight="25dp"
android:text="WRITE MESSAGE"
android:textColor="@color/colorPrimary" />
</LinearLayout>
</android.support.v7.widget.CardView>
<android.support.v7.widget.CardView
android:id="@+id/friend_activity_cardview_list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/friend_activity_cardview_buttons_block"
android:layout_marginBottom="8dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<Button
android:id="@+id/settings_image_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:backgroundTint="@android:color/white"
android:paddingLeft="25dp"
android:paddingRight="25dp"
android:text="@string/check_your_search_parameters"
android:textColor="@color/colorPrimary" />
<TextView
android:id="@+id/my_profile_tv_also_like"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/settings_image_btn"
android:layout_gravity="left"
android:layout_marginLeft="8dp"
android:layout_marginTop="8dp"
android:text="@string/you_may_also_like_them"
android:textSize="24sp"
android:textStyle="bold" />
<android.support.v7.widget.RecyclerView
android:id="@+id/my_profile_recyler"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/my_profile_tv_also_like" />
</LinearLayout>
</android.support.v7.widget.CardView>
</RelativeLayout>
</android.support.v4.widget.NestedScrollView>
<android.support.design.widget.FloatingActionButton
android:id="@+id/friend_activity_fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="16dp"
android:src="@drawable/ic_favorite_black_24dp"
app:fabSize="normal"
app:layout_anchor="@id/app_bar_layout"
app:layout_anchorGravity="bottom|end" />
</android.support.design.widget.CoordinatorLayout>
答案 0 :(得分:0)
您必须以编程方式在onCreate内设置高度
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
AppBarLayout abl=findViewById(R.id.appbar);
CoordinatorLayout.LayoutParams ap=(CoordinatorLayout.LayoutParams) abl.getLayoutParams();
ap.height=width;
abl.setLayoutParams(ap);
在AppBarLayout的资源xml中 您还必须设置
android:fitsSystemWindows="false"
否则,除非您想从正方形开始,否则正方形将从最顶部开始(包括状态栏电池,通知等)。