我在CoordinatorLayout和RecyclerView内使用AppBarLayout,CollapsingToolbarLayout创建了折叠式透明搜索栏。让recyclerView出现在appBarLayout的后面而不是在它的下面是很多技巧。但正在工作。我的问题是,有时候,当我向下滚动时,应用程序栏不会重新进入。我只是在屏幕外不可见。这是我的布局:
<android.support.design.widget.CoordinatorLayout
android:id="@+id/main_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
app:expandedTitleMarginBottom="88dp">
<android.support.v7.widget.RecyclerView
android:id="@+id/services_recycler_view"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
app:behavior_overlapTop="88dp">
</android.support.v7.widget.RecyclerView>
<android.support.design.widget.AppBarLayout
android:id="@+id/appbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fitsSystemWindows="true"
android:background="@color/color_transparent"
app:elevation="0dp">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapsing_toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_scrollFlags="scroll|enterAlways"
android:fitsSystemWindows="false">
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Search Location or Service"
android:id="@+id/button_search_bar"/>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)
解决不重新进入问题的任何帮助将是巨大的。
另一个问题是,因为我使用的app:behavior_overlapTop="88dp"是使recyclerView出现在应用程序栏的后面,所以整个滚动有些奇怪:它首先滚动appBar,然后滚动回收器视图。任何更好的解决方案都是值得欢迎的。
编辑: 我意识到AppBar确实在向下滚动时重新输入,但是是不可见的(我可以单击它,我只是看不到它)。我想我会分享这个新线索=)
android scroll material-design android-recyclerview android-appbarlayout
我有AppBarLayout,CollapsingToolbarLayout和工具栏活动。从代码设置标题和字幕。最初,我希望工具栏隐藏并在Appbar布局折叠时显示,使用我的代码可以正常工作(最初隐藏工具栏),但始终显示工具栏标题和副标题。仅在应用栏布局完全折叠时如何显示标题
<android.support.design.widget.AppBarLayout
android:id="@+id/app_bar"
android:layout_width="match_parent"
android:layout_height="@dimen/app_bar_height"
android:fitsSystemWindows="true"
android:theme="@style/AppTheme.AppBarOverlay">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/toolbar_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
app:titleEnabled="false"
app:contentScrim="?attr/colorPrimary"
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"
app:popupTheme="@style/AppTheme.PopupOverlay" />
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
Run Code Online (Sandbox Code Playgroud)
设置标题和字幕
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setTitle("Title");
getSupportActionBar().setSubtitle("sutitle");
Run Code Online (Sandbox Code Playgroud)
android android-toolbar android-collapsingtoolbarlayout android-appbarlayout
CoordinatorLayout增加AppBarLayout和之间的空间RecyclerView.不知道是否它的Toolbar或AppBarLayout.
手机上呈现的布局的屏幕截图:
Studio上的设计渲染并不是这个空间的方式.
对于发生了什么有什么想法?
代码本身.
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
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/activity_home_framelayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:animateLayoutChanges="true"
>
<android.support.v4.widget.DrawerLayout
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:animateLayoutChanges="true"
>
<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/activity_home_coordinator"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context=".ActivitySignIn">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay"
app:elevation="0dp"
>
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/colorPrimary"
android:theme="@style/OTGToolbarTheme"
>
<TextView
android:id="@+id/toolbar_title"
style="@style/textTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="You are logged in"
android:textColor="@color/colorAccent"/>
</android.support.v7.widget.Toolbar>
</android.support.design.widget.AppBarLayout>
<android.support.v7.widget.RecyclerView
android:id="@+id/activity_home_articlecontainer"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="start"
android:layout_marginTop="0dp"
android:background="@color/colorPrimary"
android:clipToPadding="false"
android:paddingTop="0dp"
app:behavior_overlapTop="?attr/actionBarSize"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
/>
</android.support.design.widget.CoordinatorLayout> …Run Code Online (Sandbox Code Playgroud) android android-design-library android-coordinatorlayout android-appbarlayout
我在AppBarLayout中使用了CollapsingToolbarLayout,用户可以使用setExpanded(boolean)AppBarLayout中的方法展开或折叠它.
问题是动画很慢而且不流畅.
我正在搜索,似乎支持设计库存在问题(请阅读此问题).但我不能降级我的支持设计库因为Im使用BottomSheetBehavior,我得到这个错误:
Error:(88) No resource identifier found for attribute 'behavior_hideable' in package...
Error:(88) No resource identifier found for attribute 'behavior_peekHeight' in package...
Run Code Online (Sandbox Code Playgroud)
有什么建议可以提高setExpand的速度吗?
android android-support-design android-collapsingtoolbarlayout android-appbarlayout
我正在尝试在折叠AppbarLayout时对ImageView产生淡化效果,但图像仍然存在.我已经阅读了其他解决方案,但它不适用于我.我似乎无法找到代码的错误.
<android.support.design.widget.CoordinatorLayout
android:id="@+id/coordinatorLayoutProfile"
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:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context="com.bolt.citywatch.ui.fragment.ProfileFragment">
<android.support.design.widget.AppBarLayout
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:layout_width="match_parent"
android:layout_height="220dp"
android:background="@color/colorPrimary"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<ImageView
android:id="@+id/profile_image"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="96dp"
android:layout_height="96dp"
android:layout_gravity="center"
android:src="@drawable/ic_email_white"
app:layout_collapseMode="parallax"/>
<android.support.v7.widget.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/recyclerViewData"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_behavior="@string/appbar_scrolling_view_behavior"/>
Run Code Online (Sandbox Code Playgroud)
我们遇到的太多这些崩溃主要发生在Samsung 6.0.1设备上.我们甚至使用相同的操作系统版本获得相同的设备,但仍无法自行重现.我们得到的其他膨胀异常可能与他们有关.
这个问题有解决方法吗?
支持lib版本 - 24.2.1
这是完整的堆栈跟踪:
Exception android.view.InflateException: Binary XML file line #21: Binary XML file line #2: Error inflating class android.support.design.widget.AppBarLayout
android.view.LayoutInflater.inflate (LayoutInflater.java:551)
android.view.LayoutInflater.inflate (LayoutInflater.java:429)
com.myapp.profile.ProfileFragment.onCreateView (ProfileFragment.java:163)
android.support.v4.app.Fragment.performCreateView (Fragment.java:2080)
android.support.v4.app.FragmentManagerImpl.moveToState (FragmentManager.java:1108)
android.support.v4.app.FragmentManagerImpl.moveToState (FragmentManager.java:1290)
android.support.v4.app.BackStackRecord.run (BackStackRecord.java:801)
android.support.v4.app.FragmentManagerImpl.execSingleAction (FragmentManager.java:1638)
android.support.v4.app.BackStackRecord.commitNowAllowingStateLoss (BackStackRecord.java:679)
android.support.v4.app.FragmentPagerAdapter.finishUpdate (FragmentPagerAdapter.java:143)
android.support.v4.view.ViewPager.populate (ViewPager.java:1240)
android.support.v4.view.ViewPager.populate (ViewPager.java:1088)
android.support.v4.view.ViewPager.onMeasure (ViewPager.java:1614)
android.view.View.measure (View.java:20166)
android.view.ViewGroup.measureChildWithMargins (ViewGroup.java:6328)
android.support.design.widget.CoordinatorLayout.onMeasureChild (CoordinatorLayout.java:700)
android.support.design.widget.CoordinatorLayout.onMeasure (CoordinatorLayout.java:767)
android.view.View.measure (View.java:20166)
android.view.ViewGroup.measureChildWithMargins (ViewGroup.java:6328)
android.widget.LinearLayout.measureChildBeforeLayout (LinearLayout.java:1464)
android.widget.LinearLayout.measureVertical (LinearLayout.java:747)
android.widget.LinearLayout.onMeasure (LinearLayout.java:629)
android.view.View.measure (View.java:20166)
com.sothree.slidinguppanel.SlidingUpPanelLayout.onMeasure (SlidingUpPanelLayout.java:804)
android.view.View.measure (View.java:20166)
android.support.v4.widget.DrawerLayout.onMeasure (DrawerLayout.java:1085)
android.view.View.measure (View.java:20166)
android.view.ViewGroup.measureChildWithMargins (ViewGroup.java:6328)
android.widget.FrameLayout.onMeasure …Run Code Online (Sandbox Code Playgroud) 所以我一直得到一个"java.lang.RuntimeException:这个图包含循环依赖"错误,我很确定是由我从AppBarLayout.ScrollingViewBehavior扩展的行为引起的.我有一个使用此行为的AppBarLayout布局,如果我删除行为,错误消失.这是行为的错误和代码
E/AndroidRuntime: FATAL EXCEPTION: main
Process: yu.heetae.android.mergingtoolbar, PID: 26027
java.lang.RuntimeException: This graph contains cyclic dependencies
at android.support.design.widget.DirectedAcyclicGraph.dfs(DirectedAcyclicGraph.java:164)
at android.support.design.widget.DirectedAcyclicGraph.dfs(DirectedAcyclicGraph.java:172)
at android.support.design.widget.DirectedAcyclicGraph.dfs(DirectedAcyclicGraph.java:172)
at android.support.design.widget.DirectedAcyclicGraph.getSortedList(DirectedAcyclicGraph.java:152)
at android.support.design.widget.CoordinatorLayout.prepareChildren(CoordinatorLayout.java:658)
at android.support.design.widget.CoordinatorLayout.onMeasure(CoordinatorLayout.java:706)
at android.view.View.measure(View.java:18794)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
at android.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:135)
at android.view.View.measure(View.java:18794)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1465)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:748)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:630)
at android.view.View.measure(View.java:18794)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
at android.view.View.measure(View.java:18794)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1465)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:748)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:630)
at android.view.View.measure(View.java:18794)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
at com.android.internal.policy.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2643)
at android.view.View.measure(View.java:18794)
at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2100)
at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1216)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1452)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1107)
at …Run Code Online (Sandbox Code Playgroud) 
另外,appbar布局和折叠工具栏布局之间有什么区别?
非常感谢 :)
android android-layout android-collapsingtoolbarlayout android-appbarlayout
无法更改工具栏标题,我在中manifeast.xml也设置了标题setTitle("TITLE");
我将标题设置为“ 历史记录和报告”,但它显示不同的标题通知,这是另一个活动标题。
我检查了一下,manifeast.xml 但没有任何变化,任何人都可以帮忙。
这是我的代码
public class Nav_HistoryAndReports extends AppCompatActivity {
private Toolbar toolbar;
private TabLayout tabLayout;
private ViewPager viewPager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setTitle("History & Reports");
setContentView(R.layout.nav_history_and_reports);
toolbar = (Toolbar) findViewById(R.id.toolbar);
setToolbar(toolbar);
viewPager = (ViewPager) findViewById(R.id.viewpager);
setupViewPager(viewPager);
tabLayout = (TabLayout) findViewById(R.id.tabs);
tabLayout.setupWithViewPager(viewPager);
}
public void setToolbar(Toolbar toolbar) {
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
private void setupViewPager(ViewPager viewPager) {
ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
adapter.addFragment(new FragmentHistoryAndReports_Visits(), "VISITS");
adapter.addFragment(new FragmentHistoryAndReports_Visitors(), "VISITORS");
adapter.addFragment(new …Run Code Online (Sandbox Code Playgroud) android android-manifest android-titlebar android-appbarlayout
我在折叠工具栏上遇到了一些问题。我有以下布局结构
<CoordinatorLayout>
<AppbarLayout>
<CollapsingToolbar>
<NestedScrollView>
<HorizontalRecyclerView>
</NestedScrollView>
</CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)
仅当我尝试滚动NestedScrollView触摸时才会出现问题HorizontalRecyclerView。在那种情况下CollapsingToolbar不会崩溃。只需AppbarLayout停留在该位置并NestedScrollView在其下方滚动即可。我已附上一个视频,其中的所有内容都很清晰。谁能解释这个问题?谢谢。
android-recyclerview coordinator-layout android-collapsingtoolbarlayout android-appbarlayout