标签: android-scrollview

三星Galaxy S2 2.3.5+没有调用overScrollBy()

似乎三星禁止他们的过度滚动(可能是由于苹果套装).

我有一个扩展ScrollView和覆盖的视图的实现

    protected boolean overScrollBy(int deltaX, int deltaY, int scrollX, int scrollY, int scrollRangeX, int scrollRangeY,int maxOverScrollX, int maxOverScrollY, boolean isTouchEvent)
    {
     ...
     return super.overScrollBy(deltaX, deltaY, scrollX, scrollY, scrollRangeX, scrollRangeY, 0, metrics.widthPixels,isTouchEvent);
    }
Run Code Online (Sandbox Code Playgroud)

在每个其他设备(姜饼和当然)上,overScrollBy当滚动器到达它结束时被调用,并且用户实际上可以过度滚动视图).

在Android 2.3.5+上,三星实施了一种完全禁用过度滚动的机制(不仅仅是他们的过度滚动实现,还包括Android的实现),每次用户尝试过度滚动时,都会打印以下LogCat事件:

02-13 16:02:34.230: D/BounceScrollRunnableDefault(15783): run(), TimeFraction=0.5225, mBounceExtent=7.273352
Run Code Online (Sandbox Code Playgroud)

有没有办法解锁三星在那里做的事情?或者也许是另一种创建过度滚动的方法?

android galaxy android-2.3-gingerbread android-scrollview android-overscoll

8
推荐指数
1
解决办法
2993
查看次数

了解如何使用OverScroller类

我正在考虑在我的项目中添加过度滚动(而不是颜色变化),但即使在阅读了API文档和这里的几个问题后,我仍然不明白我需要做些什么才能使它工作.

根据OverScroller的API文档:" 这个类封装了滚动,能够超越滚动操作的范围.在大多数情况下,这个类是Scroller的直接替代品. "

我之前在父类中有一个Scroller对象:

public boolean onTouchEvent(MotionEvent ev) {   
    ....// code to calculate deltas
     if (deltaY != 0 || deltaX != 0)
            scrollBy(deltaX, deltaY);
}
Run Code Online (Sandbox Code Playgroud)

然后我去改变它:

if (deltaY != 0 || deltaX != 0)
            overScrollBy(deltaX, deltaY, getScrollX(), getScrollY(),
                child.getRight() - getWidth(), child.getBottom() - getHeight(), 
                    OVERSCROLL_DISTANCE, OVERSCROLL_DISTANCE, false);
Run Code Online (Sandbox Code Playgroud)

现在滚动根本不起作用!fling()作为一个替代滴,但不滚动....

总之,我有两个问题:

  1. 为什么滚动不起作用overScrollBy?我是否必须添加其他代码才能使其正常工作?
  2. 我为什么要打电话mScroller.fling(),只overScrollBy()?为什么不mScroller.overScrollBy()呢?它是否以某种方式构建在View课堂上?

这可能是非常明显的,但我在这里挣扎.任何帮助将非常感谢,谢谢!

android android-scrollview android-overscoll android-scroll

8
推荐指数
1
解决办法
1824
查看次数

当listitem在recyclerview中可见时播放/暂停视频

我已经实现了一个recyclerview,我在其中添加纹理视图作为列表项来播放来自url的视频.现在像藤蔓和Instagram应用程序我想播放视频,当它在recyclerview中可见,并在listitem离开屏幕时停止/暂停视频.以下是我的代码:

VideosAdapter类:

public class VideosAdapter extends RecyclerView.Adapter<VideosAdapter.ViewHolder> {

private static String TAG = "VideosAdapter";

Context context;
private ArrayList<String> urls;
RecyclerView recyclerView;

public static class ViewHolder extends RecyclerView.ViewHolder {

    public TextureView textureView;
    public TextView textView;

    public ViewHolder(View v) {
        super(v);
        textureView = (TextureView) v.findViewById(R.id.textureView);
        textView = (TextView) v.findViewById(R.id.textView);

    }
}

public VideosAdapter(Context context, RecyclerView recyclerView, final ArrayList<String> urls) {

    this.context = context;
    this.recyclerView = recyclerView;
    this.urls = urls;

    recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
        @Override
        public void onScrolled(RecyclerView recyclerView, int dx, int dy) { …
Run Code Online (Sandbox Code Playgroud)

android-scrollview android-textureview android-recyclerview onscrollchanged

8
推荐指数
1
解决办法
1628
查看次数

iOS喜欢Android上的滚动效果

我想在我的应用程序中实现类似iOS的反弹过度滚动效果.

我遇到了这个链接,建议创建一个自定义ScrollView.但问题是,当我快速上下滚动它工作正常但是一旦我拉动屏幕的底部或顶部它就会卡住而且效果不再起作用.

作为我想要实现的那种动画的一个例子,你可以看看这个:

这是我目前的代码:

public class ObservableScrollView extends ScrollView
{
    private static final int MAX_Y_OVERSCROLL_DISTANCE = 150;

    private Context mContext;
    private int mMaxYOverscrollDistance;

    public ObservableScrollView(Context context)
    {
        super(context);
        mContext = context;
        initBounceScrollView();
    }

    public ObservableScrollView(Context context, AttributeSet attrs)
    {
        super(context, attrs);
        mContext = context;
        initBounceScrollView();
    }

    public ObservableScrollView(Context context, AttributeSet attrs, int defStyle)
    {
        super(context, attrs, defStyle);
        mContext = context;
        initBounceScrollView();
    }

    private void initBounceScrollView()
    {
        //get the density of the screen and do some maths …
Run Code Online (Sandbox Code Playgroud)

java animation android android-animation android-scrollview

8
推荐指数
2
解决办法
9682
查看次数

切换片段时跳跃滚动

在 ScrollView 中,我在两个不同高度的片段之间动态切换。不幸的是,这会导致跳跃。人们可以在以下动画中看到它:

  1. 我正在向下滚动,直到到达“显示黄色”按钮。
  2. 按“显示黄色”会用一个微小的黄色片段替换一个巨大的蓝色片段。发生这种情况时,两个按钮都会跳到屏幕的末尾。

当切换到黄色片段时,我希望两个按钮都保持在相同的位置。那怎么办呢?

卷

源代码分别位于https://github.com/wondering639/stack-dynamiccontent https://github.com/wondering639/stack-dynamiccontent.git

相关代码片段:

活动_main.xml

<?xml version="1.0" encoding="utf-8"?>

<androidx.core.widget.NestedScrollView 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/myScrollView"
android:layout_width="match_parent"
android:layout_height="match_parent">

<androidx.constraintlayout.widget.ConstraintLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <TextView
        android:id="@+id/textView"
        android:layout_width="0dp"
        android:layout_height="800dp"
        android:background="@color/colorAccent"
        android:text="@string/long_text"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <Button
        android:id="@+id/button_fragment1"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="16dp"
        android:layout_marginLeft="16dp"
        android:text="show blue"
        app:layout_constraintEnd_toStartOf="@+id/button_fragment2"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/textView" />

    <Button
        android:id="@+id/button_fragment2"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginEnd="16dp"
        android:layout_marginRight="16dp"
        android:text="show yellow"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintStart_toEndOf="@+id/button_fragment1"
        app:layout_constraintTop_toBottomOf="@+id/textView" />

    <FrameLayout
        android:id="@+id/fragment_container"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:layout_constraintTop_toBottomOf="@+id/button_fragment2">

    </FrameLayout>

</androidx.constraintlayout.widget.ConstraintLayout>
Run Code Online (Sandbox Code Playgroud)

主活动.kt

package com.example.dynamiccontent

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button

class MainActivity : …
Run Code Online (Sandbox Code Playgroud)

android android-layout android-fragments android-scrollview fragmentmanager

8
推荐指数
1
解决办法
1950
查看次数

图片库就像Google Play上的那个?(查看下一张图片)

我试图在Google Play商店中实现一个图片库,下一个图片可见:在此输入图像描述

我已尝试过不同的方法,但每个方法都走到了尽头:

1.使用PagerContainer(此处信息)但是这个解决方案在任何2.x设备上都不适用,因为下一个图像不可见,而ViewPager只在其边界内滚动(错误,此处没有回答)

2.使用Horizo​​ntalScrollView 这个解决方案在设计和功能方面已经证明是好的,但是因为Horizo​​ntalScrollView只支持一个子视图,所以它绘制了整个视图,因此我的某些设备存在内存问题.我从服务器接收图像,它们的数量和大小都很大.因此,这里也遇到了死胡同.

3.使用Horizo​​ntalListView(此处info )这听起来像是Horizo​​ntalScrollView的替代品,因为使用了适配器,因此解决了内存问题.但是,一旦从服务器加载图像,我无法正确修改此类以更改其测量值.正如您所看到的,它会测量其孩子,同时牢记父母的测量结果.当我定义视图时,尚未从服务器接收图像,因此测量结果不正确.一旦收到图像,我就无法正确地强制重新测量视图.

4.将ViewPager边距设置为负 此解决方案对我不起作用,因为在我开始滚动后测量结果未正确显示.(第一个视图显示设置的边距,下一个图像是可见的.但是,在开始滚动后,一些图像有边距,其他没有,一些只在一侧等)我不知道这里是否有一个不断测量的解决方案观点和屏幕.

我可以为其中一个解决方案发布代码,如果你认为它是正确的.但我觉得Google Play使用了另一种我不了解的解决方案.我不想使用Gallery,因为它已被弃用.

android-gallery android-image android-layout android-scrollview android-viewpager

7
推荐指数
1
解决办法
1831
查看次数

如何知道Scroll里面的View是完全可见还是不可见

标题(位于屏幕顶部)和标签(屏幕底部)之间有滚动视图.我想知道ScrollView内部的ImageView是否在手机屏幕窗口完全可见.

在此输入图像描述

android scrollview android-imageview android-scrollview

7
推荐指数
1
解决办法
2347
查看次数

自定义水平滚动视图与选择器

用户需要在我的应用程序的注册页面中输入其权重,为此创建水平滚动视图,中心元素数据将作为用户的高度(以英寸为单位).

在此输入图像描述

我尝试从Android SpinnerWheel实现Spinner Wheel Library,但它只支持int值,不支持分数.

我还尝试使用带有Center Lock库的Android Horizo​​ntalScrollView,但它不支持自动滚动.

任何人都可以建议一些示例或技巧来实现上面提到的滚动视图,中心元素值作为字段条目?

提前致谢!

android android-scrollview

7
推荐指数
1
解决办法
6079
查看次数

CollapsingToolbarLayout ImageView不可滚动

使用cheesesquare - android支持库的例子是否可以使Header ImageView滚动?

<android.support.design.widget.AppBarLayout
    android:id="@+id/appbar"
    android:layout_width="match_parent"
    android:layout_height="@dimen/detail_backdrop_height"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    android:fitsSystemWindows="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"
        android:fitsSystemWindows="true"
        app:contentScrim="?attr/colorPrimary"
        app:expandedTitleMarginStart="48dp"
        app:expandedTitleMarginEnd="64dp">

        <ImageView
            android:id="@+id/backdrop"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:scaleType="centerCrop"
            android:fitsSystemWindows="true"
            app:layout_scrollFlags="scroll" 
            app:layout_collapseMode="parallax" />
            ...
    </android.support.design.widget.CollapsingToolbarLayout>

<android.support.v4.widget.NestedScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fillViewport="true"
    app:layout_behavior="@string/appbar_scrolling_view_behavior">
    ....
Run Code Online (Sandbox Code Playgroud)

请注意,我已添加添加android:fillViewport="true"NestedScrollView添加 app:layout_scrollFlags="scroll"ImageView但是当尝试滚动时ImageView没有任何反应.

android android-scrollview android-support-library android-design-library android-collapsingtoolbarlayout

7
推荐指数
1
解决办法
2646
查看次数

滚动到全视图与里面的回收者视图

我想建立一个屏幕,我在顶部和下面有一个布局,我有一个像这样的回收站视图:

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:fab="http://schemas.android.com/apk/res-auto"
    tools:context="com.app.InstHomeDir.Fragments.PendingDocument"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/main_bg"
   >

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginLeft="15dp"
        android:layout_marginRight="15dp"
        android:layout_marginBottom="15dp"
        >

    <android.support.v7.widget.CardView

        android:background="@color/white"
        app:cardElevation="2dp"
        app:cardCornerRadius="2dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        >
        <LinearLayout
            android:orientation="vertical"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">
            <com.app.InstHomeDir.Util.Roboto_Edit_Text_Bold
             android:textColor="@color/bl2d2d2d"
             android:padding="5dp"
            android:text="DOCUMENT LIST"
                android:textSize="20sp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
            <com.app.InstHomeDir.Util.Roboto_EditText
             android:padding="5dp"
             android:textColor="#6f6f6f"
            android:layout_marginTop="5dp"
            android:layout_width="wrap_content"
                android:textSize="12sp"
            android:text="@string/Pending_Doc"
            android:layout_height="wrap_content"/>
        </LinearLayout>


    </android.support.v7.widget.CardView>


    <android.support.v7.widget.RecyclerView
        android:id="@+id/recycler_penddoc"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_anchor="@id/toolbar_layout"
        app:layout_anchorGravity="bottom|center"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"
        >

    </android.support.v7.widget.RecyclerView>


    </LinearLayout>



</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

现在我想给整个视图滚动视图,但是当我这样做时,屏幕的滚动并不顺畅,因为屏幕上有两个滚动,我该如何解决这个问题?谁能帮我?

android android-scrollview android-recyclerview

7
推荐指数
1
解决办法
5577
查看次数