我试图layout_behavior在一个元素上设置一个子元素CollapsingToolbarLayout但是从不在iv_header视图上调用行为.当它固定在外面时,例如tv_follow视图,它可以很好地工作.
文档没有明确说明layout_behavior不能在一个AppBarLayout或那个范围内应用CollapsingToolbarLayout我因为它不工作而感到茫然.
<?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:id="@+id/header"
android:layout_width="match_parent"
android:layout_height="@dimen/full_header_height"
android:focusable="true"
android:focusableInTouchMode="true">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapsing_toolbar"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<ImageView
android:id="@+id/iv_header"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
android:contentDescription="@null"
app:layout_behavior="com.package.view.HidingBehavior"
app:layout_collapseMode="parallax"
android:src="@drawable/profile_background"/>
<android.support.v7.widget.Toolbar
android:id="@+id/header_toolbar"
android:layout_height="@dimen/action_bar_height"
android:layout_width="match_parent"
android:background="@drawable/toolbar_dark_gradient_half"
android:gravity="top"
app:layout_collapseMode="pin"/>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"/>
<TextView
android:id="@+id/tv_follow"
android:textSize="20sp"
android:textColor="@android:color/white"
android:text="@string/follow"
android:drawableLeft="@drawable/comm_follow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_anchor="@id/header"
app:layout_anchorGravity="center"
app:layout_behavior="com.package.view.HidingBehavior"
android:drawablePadding="8dp"
android:gravity="center"
android:visibility="gone"
android:fitsSystemWindows="true"/>
</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)
行为被从设计支持库中的FloatingActionButton代码中拉出.
public class HidingBehavior extends CoordinatorLayout.Behavior<View>{ …Run Code Online (Sandbox Code Playgroud) android androiddesignsupport android-coordinatorlayout android-collapsingtoolbarlayout
我在我的项目中使用以下布局.它工作正常但是,即使RecyclerView为空或者RecyclerView的项目非常少,CollapsingToolbarLayout也会折叠.我想要的行为是,只有当RecyclerView的项目大于可见项目时,CollapsingToolbarLayout才会折叠.我怎样才能实现这种行为?
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
android:id="@+id/coordinator_layout"
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="wrap_content"
android:fitsSystemWindows="true">
<android.support.design.widget.AppBarLayout
android:id="@+id/app_bar"
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"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
app:contentScrim="?attr/colorPrimary"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<include
layout="@layout/header"
android:fitsSystemWindows="true"
app:layout_collapseMode="parallax"/>
<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"/>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<android.support.v7.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_behavior="@string/appbar_scrolling_view_behavior"/>
</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud) android android-recyclerview androiddesignsupport android-collapsingtoolbarlayout
我有下面的xml文件有1)工具栏2)TabLayout 3)自定义视图和4)ViewPager.当我把Toolbar,TabLayout,Custom View里面AppBarLayout,它推动ViewPager下来,就像这样:
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:id="@+id/feed_coordinator_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">
<android.support.design.widget.AppBarLayout
android:id="@+id/appbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fitsSystemWindows="true">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapsing_tool_bar_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fitsSystemWindows="true"
app:contentScrim="?attr/colorPrimary"
app:expandedTitleTextAppearance="@style/Widget.AppCompat.ActionBar.TabText"
app:layout_scrollFlags="scroll|enterAlways"
app:statusBarScrim="?attr/colorAccent">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar_alt"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/primary_color"
android:minHeight="?attr/actionBarSize"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:layout_collapseMode="none"
app:layout_scrollFlags="scroll|exitUntilCollapsed"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light">
</android.support.v7.widget.Toolbar>
</android.support.design.widget.CollapsingToolbarLayout>
<android.support.design.widget.TabLayout
android:id="@+id/feed_sliding_tabs_alt"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:tabGravity="fill"
app:tabMode="fixed"
app:tabSelectedTextColor="@color/accent_color"
app:tabTextColor="@color/accent_color_per_70" />
<LinearLayout
android:id="@+id/activity_feed_fl_canli_skor"
android:layout_width="match_parent"
android:layout_height="52dp"
android:background="@drawable/mac_back"
android:orientation="vertical">
</LinearLayout>
</android.support.design.widget.AppBarLayout>
<android.support.v4.view.ViewPager
android:id="@+id/activity_feed_alt_view_pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
<android.support.design.widget.FloatingActionButton
android:id="@+id/floating_action_button"
android:layout_width="wrap_content" …Run Code Online (Sandbox Code Playgroud) android android-viewpager android-coordinatorlayout android-collapsingtoolbarlayout android-appbarlayout
我在我的项目中使用CoordinatorLayout.它工作正常,但我需要修复一个问题.我正在使用白色操作栏图标,当CoordinatorLayout展开并且背景颜色为白色时,我看不到任何这些图标.
我在一个应用程序中看到了这个 当CoordinatorLayout展开时,图标会变暗,当向下滚动时,它们会变为白色.
正如您所看到的,当它被展开时,图标是黑暗的,当它关闭时,图标变为白色.
向下滚动直到它完全从黑暗图标转换为白色图标开始变化
抱歉没有附上代码,这是我的代码:
<?xml version="1.0" encoding="utf-8"?>
Run Code Online (Sandbox Code Playgroud)
<android.support.design.widget.AppBarLayout
android:id="@+id/app_bar_layout"
android:layout_width="match_parent"
android:layout_height="240dp"
android:fitsSystemWindows="true"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapsing_toolbar"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
app:contentScrim="#FF4548"
app:expandedTitleMarginEnd="64dp"
app:expandedTitleMarginStart="48dp"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<RelativeLayout
android:id="@+id/slidelayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="?attr/actionBarSize"
android:background="#fff">
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<com.viewpagerindicator.CirclePageIndicator
android:id="@+id/indicator"
android:layout_width="fill_parent"
android:layout_height="10dp"
android:layout_alignParentBottom="true"
android:layout_marginBottom="7dp" />
</RelativeLayout>
<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" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:paddingLeft="3dp"
android:layout_gravity="top"
android:paddingRight="3dp"
app:layout_collapseMode="pin">
<ImageView
android:id="@+id/imgsearch"
android:layout_width="wrap_content"
android:layout_height="?attr/actionBarSize"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginRight="2dp"
android:paddingBottom="5dp"
android:src="@drawable/ic_action_search"
android:visibility="visible" />
<ImageView
android:id="@+id/imgshare"
android:layout_width="wrap_content"
android:layout_height="?attr/actionBarSize"
android:layout_alignParentTop="true"
android:layout_marginLeft="5dp"
android:layout_toRightOf="@+id/imgsearch"
android:paddingBottom="5dp"
android:src="@drawable/ic_action_share"
android:visibility="visible" />
<ImageView …Run Code Online (Sandbox Code Playgroud) 我为我的Android应用程序做了一个带有图像的折叠工具栏.它与drawable图像完美配合.我的问题是当我从URL检索图像并将其分配给同一图像视图时.折叠工具栏无法使用.标题不见了,无法滚动,也没有图像.
这是我的截图.
图1是来自drawable的图像,图2是从URL中检索的图像
活动:
import android.app.ProgressDialog;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.BitmapDrawable;
import android.os.AsyncTask;
import android.os.Build;
import android.os.Bundle;
import android.support.design.widget.CollapsingToolbarLayout;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.graphics.Palette;
import android.support.v7.widget.Toolbar;
import android.widget.ImageView;
import android.widget.Toast;
import java.io.InputStream;
import java.net.URL;
public class RecipeDisplay extends AppCompatActivity {
CollapsingToolbarLayout collapsingToolbarLayout;
ImageView image;
ImageView img;
Bitmap bitmap;
ProgressDialog pDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_recipe_display);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
//default header image for toolbar
image = (ImageView) findViewById(R.id.image);
image.setImageResource(R.drawable.header);
//Loading image using async task
new …Run Code Online (Sandbox Code Playgroud) android toolbar android-asynctask material-design android-collapsingtoolbarlayout
使用appcompat 23.1.1,当显示软键盘时,无法滚动到NestedScrollView内的EditText的末尾.如果键盘被隐藏,它将滚动到最终结果.
换句话说,软键盘隐藏了文本的最后部分.
已经问过这个问题的变化,没有明确的答案.大多数人都认为appcompat 22.x是错误的.这已修复为23.1?如果没有,现在是否有更好的解决方法.
要重现此问题,只需创建使用Android Studio,创建一个新项目并选择"滚动应用程序",然后将TextView更改为EditText.
我尝试添加到清单,
android:windowSoftInputMode="adjustResize"
Run Code Online (Sandbox Code Playgroud)
但它没有任何区别.
作为参考,这里是项目文件:
https://gist.github.com/anonymous/73acc2d39f4e90c51217
感谢您的任何帮助和建议
编辑#1
appcompat-v7:23.2.0仍然如此
编辑#2
仍然存在appcompat 23.3.0可能是一个错误.请参阅此处, https://code.google.com/p/android/issues/detail?id = 182362
我在控制台中收到此警告.我能找到的唯一信息是大多数人在列表视图中启用快速滚动时获得它.我没有使用任何列表视图.它说它被CollapsingToolbarLayout,AppCompatTextView,Toolbar和AppBarLayout不正确地调用.每当我快速"推动"我的嵌套滚动视图上下折叠并展开工具栏时,就会发生这种情况.
日志:
06-30 22:18:42.622 19090-19090/? I/art: Not late-enabling -Xcheck:jni (already on)
06-30 22:18:43.153 19090-19090/joebruckner.lastpick.debug D/MovieShuffleActivity: false, true, false
06-30 22:18:43.205 19090-19126/joebruckner.lastpick.debug D/OpenGLRenderer: Use EGL_SWAP_BEHAVIOR_PRESERVED: true
[ 06-30 22:18:43.267 19090:19126 D/ ]
HostConnection::get() New Host Connection established 0xea95fdb0, tid 19126
06-30 22:18:43.287 19090-19126/joebruckner.lastpick.debug I/OpenGLRenderer: Initialized EGL, version 1.4
06-30 22:18:43.806 19090-19090/joebruckner.lastpick.debug D/MovieShuffleActivity: false, true, true
06-30 22:28:49.264 19090-19090/joebruckner.lastpick.debug W/View: requestLayout() improperly called by android.support.design.widget.CollapsingToolbarLayout{5041bd9 V.ED..... ......ID 0,0-1080,525 #7f0d0074 app:id/collapsingToolbar} during layout: running second layout pass
06-30 22:28:49.264 19090-19090/joebruckner.lastpick.debug W/View: requestLayout() improperly …Run Code Online (Sandbox Code Playgroud) android android-view android-support-library android-toolbar android-collapsingtoolbarlayout
我有一个在回收站视图中具有名称的项目和一个带有折叠工具栏的详细信息活动,该工具栏显示项目的名称.我想在项目名称和工具栏/折叠工具栏的标题之间添加一个sharedelement转换.
item_subject.xml
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<FrameLayout
android:id="@+id/frameLayoutSubjectColor"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:minWidth="20dp" />
<TextView
android:id="@+id/textViewSubjectName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:padding="10dp"
android:text="Medium Text"
android:textAppearance="?android:attr/textAppearanceMedium" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
activity_subject_detail.xml
<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="200dp"
android:id="@+id/appBarLayout"
android:fitsSystemWindows="true"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapsing_toolbar"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<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.v7.widget.Toolbar>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<android.support.v4.widget.NestedScrollView
android:id="@+id/subject_detail_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/activity_horizontal_margin"
android:orientation="vertical">
<TextView
android:id="@+id/textViewSubjectShort"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingBottom="16dp"
android:text="Medium Text"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/textViewSubjectRoom"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingBottom="32dp"
android:text="Medium Text"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/textViewTeacher"
android:layout_width="wrap_content"
android:layout_height="wrap_content" …Run Code Online (Sandbox Code Playgroud) android shared-element-transition android-collapsingtoolbarlayout
下面是我的协调员布局的代码.它运作良好.
<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/appbar"
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"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
app:contentScrim="#f4f4f4"
app:expandedTitleMarginEnd="16dp"
app:expandedTitleMarginStart="48dp"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/header"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/echo3"
android:fitsSystemWindows="true"
android:scaleType="centerCrop" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_alignParentBottom="true"
android:background="#fff">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="Private Albums"
android:textColor="#000"
android:textSize="22sp"
android:textStyle="bold" />
</RelativeLayout>
</RelativeLayout>
<android.support.v7.widget.Toolbar
android:id="@+id/anim_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:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_below="@+id/anim_toolbar"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<include layout="@layout/content_profile" />
<!--<fragment-->
<!--android:id="@+id/detail"-->
<!--android:name="<package>.<fragment_name>"-->
<!--android:layout_width="match_parent"-->
<!--android:layout_height="match_parent" />-->
</android.support.v4.widget.NestedScrollView>
</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)
但我想淡化整个相对布局,因为我向上滚动它应该开始褪色(平均整个折叠栏布局).它确实在特定点淡出,但我希望它在我向上滚动时淡出.谢谢,任何帮助表示赞赏.
我的应用程序中有一个底页,我想在其中使用折叠工具栏布局.但当我打开底部页面时,折叠工具栏布局将消失,我必须向下滚动才能看到它.
另一个问题是针对我想要成为滚动模式引脚的线性布局不起作用的引脚模式.
当我添加折叠工具栏布局时,我的底部工作表也不会打开全屏.
这是我的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:id="@+id/coordinatorLayout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.AppBarLayout
android:id="@+id/appBarLayout"
android:layout_width="match_parent"
android:layout_height="360dp"
android:background="#ffffff"
app:elevation="5dp"
app:expanded="true">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapsingToolbarLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_scrollFlags="scroll|exitUntilCollapsed"
app:expanded="true">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_collapseMode="parallax"
app:layout_collapseParallaxMultiplier="0.7">
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="252dp"
app:layout_constraintBottom_toTopOf="@+id/indicator"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
<me.relex.circleindicator.CircleIndicator
android:id="@+id/indicator"
android:layout_width="match_parent"
app:ci_drawable="@drawable/circleindicator_round"
android:layout_height="48dp"
android:layout_gravity="bottom"
android:gravity="bottom"
android:visibility="visible"/>
</LinearLayout>
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:layout_collapseMode="pin"
android:layout_gravity="bottom"
android:visibility="visible"
app:titleTextColor="@color/black">
</android.support.v7.widget.Toolbar>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<android.support.v4.widget.NestedScrollView
android:id="@+id/nestedScrollView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#e9e7e7"
android:fillViewport="false"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
</android.support.v4.widget.NestedScrollView>
</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)
谢谢您的回答.
android ×10
android-collapsingtoolbarlayout ×10
android-view ×1
bottom-sheet ×1
toolbar ×1
xml ×1