Articles of nestedscrollview

无法滚动AppBarLayout并平滑地折叠工具栏和NestedScrollView

我正在开发一个Android应用程序,我在其中使用CoordinatorLayout , AppBarLayout和CollapsingToolbarLayout来使用折叠工具栏function。 我在布局中使用NestedScrollView以相同的布局展开和折叠AppBarLayout 。 当我试图从屏幕中心向上滚动然后它不起作用但是当我尝试从屏幕右上角向上滚动屏幕时它会顺利滚动。 下面提到的是我的xml文件 layout.xml > > > > > > 理想的结果是,当我尝试从屏幕中心向上滚动时,它应该像我从移动设备的右上角向上滚动一样起作用。 请观看下面提到的video,以便更清楚地查看问题 https://www.dropbox.com/s/gscfc8vfc7kkpxp/device-2015-12-30-160119.mp4?dl=0

滚动到不带工具栏的折叠视图

我正在做一个类似于最近的android状态栏的布局。 我有两个Views内的容器。 ViewPager和RecyclerView 。 默认的行为应该是当我滚动RecyclerView ,我希望ViewPager大小减less,反之亦然。 逻辑: viewPagerMaxHeight = 200; if scrollTop is ViewPager.height > viewPagerMaxHeight? YES: Prevent Scroll and Decrease ViewPager size apropriatry No: Scroll RecyclerView if scrollBottom did we scroll to position 0? YES: Start increasing ViewPager size No: Scroll RecyclerView 几个注意事项: – RecyclerView包含各种大小的项目。 – 有时项目被删除和添加 – 这是一个简单的RecyclerView,不像在通知中,他们互相崩溃。 我可以自己构build大部分逻辑,但是我无法为RecyclerView创build一个适当的侦听器,它将返回滚动的方向和数量。 防止RecyclerView滚动是一个奖金 编辑: 我在github上做了一个例子 v.setOnScrollChangeListener(new […]

FrameLayout与NestedScrollView的高度不匹配

我有一个NestedScrollView内的FragmeLayout,如 <android.support.v4.widget.NestedScrollView android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior"> <FrameLayout android:layout_width="match_parent" android:layout_height="match_parent" android:background="#000000"> 但是FrameLayout并没有填充NestedScrollView的高度。 我该如何解决这个问题?

我可以创build一个像这样的嵌套滚动布局吗?

我认为这可以通过NestedScrollingChild NestedScrollingParent来实现。 但是我真的不能理解他们,谁能帮助我! 产品经理坚持devise。 ScrollView包含一个LinearLayout ,一个“TabLayout”和一个ViewPager 。 ViewPager包含2个包含RecyclerView fragment或者仅包含2个RecyclerView 。 当ScrollView滚动到底部时, RecyclerView可以滚动到底部。 当RecyclerView滚动到Top时, ScrollView可以滚动到Top。 <?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:orientation="vertical" android:layout_width="match_parent" android:layout_height="wrap_content"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" /> <TextView android:layout_width="match_parent" android:layout_height="1000dp" /> <TableLayout android:layout_width="match_parent" android:layout_height="60dp"></TableLayout> <android.support.v4.view.ViewPager android:layout_width="match_parent" android:layout_height="match_parent"></android.support.v4.view.ViewPager> </LinearLayout> </ScrollView>

Recycler视图+ View Pager +嵌套的ScrollView + CoordinatorLayout

我正在处理一个布局,使得持有包含回收视图的片段的ViewPager被放置在协调器布局的nester scrollView中。 问题是一旦我点击回收站视图的嵌套滚动视图不工作.. 有没有什么可能的方式来有这样的滚动布局 <?xml version="1.0" encoding="utf-8"?> <android.support.design.widget.CoordinatorLayout android:layout_width="match_parent" android:layout_height="match_parent"> <NestedScrollView android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior"> <LinearLayout android:id="@+id/lin" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <ViewPager android:id="@+id/view_pager" android:layout_width="match_parent" android:layout_height="wrap_content" /> </LinearLayout> <NestedScrollView> <android.support.design.widget.AppBarLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@android:color/transparent" app: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"> <FrameLayout android:layout_width="match_parent" android:layout_height="190dp" android:minHeight="190dp" app:layout_collapseMode="parallax" > <ViewFlipper android:id="@+id/view_flipper" android:layout_width="match_parent" android:layout_height="match_parent"> <!–<ImageView android:id="@+id/backdrop" android:layout_width="match_parent" android:layout_height="match_parent" android:adjustViewBounds="true" android:fitsSystemWindows="true" android:scaleType="centerCrop"/>–> […]

webview高度在nestedScrollView中无限增长

这是我的布局。 当我加载google.com时,webview的高度不断增长。 webview的onSizeChange函数不断被调用,我可以看到webview不断扩大。 我已经尝试了22.2.1和23.1.0的devise和appcompat库,没有效果。 任何解决scheme : – | <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:background="@android:color/black"> <android.support.v4.widget.NestedScrollView android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="fill_vertical" app:layout_behavior="@string/appbar_scrolling_view_behavior"> <com.example.ajay.scrollabletoolbar.MyWebView android:id="@+id/webview" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_alignParentTop="true"/> </android.support.v4.widget.NestedScrollView> <android.support.design.widget.AppBarLayout android:id="@+id/appbarlayout" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentTop="true"> <android.support.v7.widget.Toolbar android:id="@+id/restricted_browser_toolbar" android:layout_width="match_parent" android:layout_height="?actionBarSize" android:background="@color/colorPrimary" app:layout_scrollFlags="scroll|enterAlways"> <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" android:background="#FFFFFF" android:descendantFocusability="beforeDescendants" android:focusableInTouchMode="true"> <EditText android:id="@+id/current_url" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_centerVertical="true" android:backgroundTint="@android:color/darker_gray" android:dropDownAnchor="@+id/restricted_browser_toolbar" android:hint="hint hint" android:imeOptions="actionGo|flagNoExtractUi" android:inputType="textNoSuggestions|textUri" android:paddingBottom="8dp" android:paddingEnd="8dp" […]

在NestedScrollView Android 2.3或更低版本中滚动WebView

我在我的android应用程序中添加了Toolbar , Tablayout和Viewpager 。 TabLayout有三个Tabs ,每个都显示一个WebView 。 当用户在WebView向下/向上滚动时,我将WebView放置在NestedScrollView以隐藏/显示Toolbar 。 Toolbar隐藏在Android 3.0或更高版本中。 但不幸的是,在Android 2.3或更低版本中, WebView不会首先滚动。 我必须滑动到另一个选项卡,当我再次回到第一个Tab WebView开始滚动。 我想要的是? 我希望WebView应该在Android 2.3或更低版本中滚动而没有任何问题。 我的WebView <?xml version="1.0" encoding="utf-8"?> <android.support.v4.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:isScrollContainer="false" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior"> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:paddingTop="1dp"> <WebView android:id="@+id/webviewtool" android:layout_width="match_parent" android:layout_height="fill_parent" android:numColumns="1" android:scrollbars="none" android:focusableInTouchMode="false" android:focusable="false" android:background="#FFFFFF" /> </LinearLayout> </android.support.v4.widget.NestedScrollView>

android – CoordinatorLayout / NestedScrollView /隐藏 – 显示工具栏/问题与WebView

我有一个问题: <?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="wrap_content"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" app:layout_scrollFlags="scroll|enterAlways" /> </android.support.design.widget.AppBarLayout> <android.support.v4.widget.NestedScrollView android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior"> <WebView android:id="@+id/webView" android:layout_width="match_parent" android:layout_height="match_parent" /> </android.support.v4.widget.NestedScrollView> </android.support.design.widget.CoordinatorLayout> 当我在webview中滚动时,工具栏被隐藏或显示(完美!),但加载/定位网页存在问题。 例如,如果我滚动到页面的中间位置,并且点击一个链接,则将加载的新页面也将位于页面的中间位置而不是顶部。 就像滚动条不是从一个页面移动到另一个页面一样。 如果我添加到NestedScrollView: android:fillViewport="true" 一切工作与网页视图(页面加载和出现良好,虽然从顶部开始),但我失去了隐藏/显示与工具栏:( 你对这个问题有什么想法吗? 预先感谢您的帮助 :) (有关信息:Androiddevise支持库:23.0.1) 烨

NestedScrollView和Horizo​​ntal RecyclerView平滑滚动

我有一个垂直的nestedscrollview,其中包含一堆水平布局pipe理器设置的recyclerview。 这个想法与新的谷歌播放商店看起来很相似。 我能够使其function,但它不是一帆风顺的。 以下是问题: 1)水平回收者视图项目在大部分时间都不能拦截触摸事件,即使我点击它也是如此。 滚动视图似乎优先于大部分的议案。 对我来说很难挂钩水平运动。 这个用户体验是令人沮丧的,因为我需要尝试几次才能工作。 如果您查看Play商店,则可以很好地拦截触摸事件,并且效果不错。 我在游戏商店注意到他们设置的方式是在一个垂直回收站内部进行许多水平的回收站查看。 没有滚动视图。 2)水平回收站的高度必须手动设置,并且没有简单的方法来计算子元素的高度。 这是我正在使用的布局: <android.support.v4.widget.NestedScrollView android:id="@+id/scroll" android:layout_width="match_parent" android:layout_height="match_parent" android:clipToPadding="false" android:background="@color/dark_bgd" app:layout_behavior="@string/appbar_scrolling_view_behavior"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <LinearLayout android:id="@+id/main_content_container" android:layout_width="match_parent" android:layout_height="wrap_content" android:visibility="gone" tools:visibility="gone" android:orientation="vertical"> <android.support.v7.widget.RecyclerView android:id="@+id/starring_list" android:paddingLeft="@dimen/spacing_major" android:paddingRight="@dimen/spacing_major" android:layout_width="match_parent" android:layout_height="180dp" /> 这个用户界面模式是非常基本的,很可能用在许多不同的应用程序。 我已经阅读了许多SO,在那里,ppl说把一个列表放在一个列表中是一个坏主意,但是它是一个非常常见和现代的用户界面模式,用在所有的地方。思考netflix像一系列水平滚动列表一个垂直列表。 没有一个顺利的方法来完成这个? 来自商店的示例图片:

NestedScrollView一举阻止牛轧糖(API 25)

NestedScrollView在Nexus 5x(7.1.2)和Google Pixel(7.1.1)上抛出一个奇怪的问题。 在其他操作系统版本上,它工作正常 有时候,抬起手指之后,一拳就会停下来。 它卡住,接下来的几个甩也可能停止。 为了重现它,你需要多次上下跳动。 在日志里,这些鞭子在速度,方向等方面看起来差不多,所以我找不到这个bug的真正原因。 另外NestedScrollView不一定需要在CoordinatorLayout内部,它也可以根本没有NestedScrollingChild 。 例如,这个错误可以通过以下NestedScrollView : 1)使用TextViews填充LinearLayout 2) WebView 3)使用RecyclerViews填充LinearLayout 。 我知道在CoordinatorLayout里面的RecyclerView和Behaviors可能存在的问题,但是没有关系。 所以请不要提及任何 recyclerView.getLayoutManager().setAutoMeasureEnabled(true); recyclerView.setNestedScrollingEnabled(false); 或类似的东西。 代码示例: <android.support.v4.widget.NestedScrollView android:layout_width="match_parent" android:layout_height="match_parent" android:fillViewport="true"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="16dp" android:text="Put a super long text here"/> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="16dp" android:text="Put a super long text here"/> </LinearLayout> </android.support.v4.widget.NestedScrollView>