我的活动包含设计库23.0.1提供的AppBarLayout,它在我向上滚动时隐藏.我有一个RecyclerView,每个子项目也包含一个RecyclerView,基本上是一个嵌套的RecyclerView.
我的问题是,当我触摸任何内部RecyclerView的孩子并向上滚动时,AppBar不会隐藏.但是,如果我将手指放在其他地方(不在内部RecyclerView上)并滚动,则应用栏会向上滚动.为什么会这样?我甚至尝试为内部回收站视图添加appbar行为,但是当我触摸其他地方并滚动时,应用栏只会向上滚动.
注意:内部的recyclerview有一组固定的项目,这些项目在任何时候都是可见的,基本上,在recyclerview中没有滚动.
有一个类似的问题,提供的解决方案是拦截内部回收视图的触摸并将其传递给父回收站视图.但是这会禁用内部回收站视图中子项的单击事件,我不希望这样.
android android-recyclerview android-design-library android-appbarlayout
我有一个RecyclerView,每个项目都在项目布局上启用了"selectableItemBackground",以便在触摸时给我带来涟漪效果.问题是,这些项目上有一个imageView,而涟漪效应只发生在图像下面.如何在整个项目布局上显示波纹(也在imageView上),就像触摸Google Play商店中的项目一样?
由于某种原因,我的 Android Studio 1.5.1 突然开始显示比平常更多的日志。我不确定我是否意外单击或更改了某些设置,但现在如果我将手机从桌子上拿起,它也会显示日志。
如何恢复为仅显示涉及我的应用程序的日志?
我有一个嵌套的ViewPager,工作得非常好.唯一的问题是,一旦子ViewPager在最后一项并且我进一步滚动,父ViewPager就会滚动.我不想要这种行为.
我该如何实现这一目标?
这是一个例子,我Activity_main.xml的父ViewPager包含三个片段页面.
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
Run Code Online (Sandbox Code Playgroud)
在其中一个片段布局中fragment_categories.xml,我有另一个ViewPager,它是父视图中的子视图Activity_main.xml,
<android.support.v4.view.ViewPager
android:id="@+id/mViewPager"
android:layout_width="match_parent"
android:layout_height="@dimen/offer_height"
android:layout_marginTop="2dp"
android:overScrollMode="never"/>
Run Code Online (Sandbox Code Playgroud)
一切正常.但是当子viewPager到达其最后一项时,我滚动更多,父viewPager移动到下一页.我不想要这个.我尝试通过在之前拦截父ViewPager上的触摸来做到这一点,但这不起作用.我猜我做错了?(是的,我在xml中更改了标签com.project.CustomViewPager并试了一下.)
CustomViewPager.java:
public CustomViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected boolean canScroll(View v, boolean checkV, int dx, int x, int y) {
if(v != this && v instanceof ViewPager) {
return false;
}
return super.canScroll(v, checkV, dx, x, y);
}
Run Code Online (Sandbox Code Playgroud)