相关疑难解决方法(0)

ScrollView中的ViewPager不会滚动correclty

我有一个"页面",其上有许多组件,其内容的长度超过了设备的高度.好吧,只需将所有布局(整个页面)放在里面ScrollView,没问题.

其中一个组件是ViewPager.这可以正确呈现,但是对滑动/拖动的响应没有正确执行,它是紧张的,并不总是有效.它似乎与'混淆' ScrollView,所以当你在一条精确的水平线上投掷时,只能100%工作.

如果我删除了ScrollView,ViewPager会完美响应.

我有一个搜索,并没有发现这是一个已知的缺陷.还有其他人经历过这个吗?

  • 平台版本:1.6
  • 兼容性库v4.
  • 装置:HTC Incredible S.

下面是一些示例代码供您测试,注释掉ScrollView以查看它是否正常工作.

活动:

package com.ss.activities;

import com.ss.R;

import android.app.Activity;
import android.content.Context;
import android.graphics.Color;
import android.os.Bundle;
import android.os.Parcelable;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.widget.TextView;

public class PagerInsideScollViewActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        ViewPager vp = (ViewPager) findViewById(R.id.viewpager);
        vp.setAdapter(new MyPagerAdapter(this));
    }
}

class MyPagerAdapter extends PagerAdapter {

    private Context ctx;

    public MyPagerAdapter(Context context) {
        ctx = …
Run Code Online (Sandbox Code Playgroud)

android scrollview android-viewpager

88
推荐指数
3
解决办法
7万
查看次数

ScrollView中的Google Maps API v2 SupportMapFragment - 用户无法垂直滚动地图

我正在尝试将Google地图放在滚动视图中,以便用户可以向下滚动其他内容以查看地图.问题是这个滚动视图占用了所有垂直触摸事件,因此地图的UI体验变得非常奇怪.

我知道在谷歌地图的V1中,您可以覆盖onTouch或setOnTouchListener以在MotionEvent.ACTION_DOWN上调用requestDisallowInterceptTouchEvent.我试图用V2实现类似的技巧无济于事.

到目前为止,我尝试过:

  • 覆盖SupportMapFragment,在onCreateView中,为View设置触摸侦听器
  • 调用SupportMapFragment实例的.getView(),然后调用setOnTouchListener
  • 环绕相对布局或框架布局,使用透明视图或图像视图遮罩片段

这些都没有解决滚动问题.我在这里错过了什么吗?如果有人在滚动视图中有一个地图的工作示例,请您分享代码示例吗?

android scala google-maps-android-api-2

51
推荐指数
4
解决办法
2万
查看次数

Android - 多个可查看项目的水平滚动

编辑:看看我自己的答案,以便于解决

重要提示:Bounty提供了明确的方式来修改ViewPager以满足下面概述的方案.请不要提供Horizo​​ntalScrollView - 我需要覆盖完整的Fragment生命周期场景

我需要实现Fragments基于视图的水平滚动,其中一个项目位于中心,右侧/左侧的项目部分或完全可见.ViewPager不适合这项任务,因为它专注于每次显示一个项目.

为了便于理解,下面是一个快速草图,其中第1项,第5项和第6项位于可视区域之外.并且想要使这个可查看的数字可配置,例如在纵向视图中,我将只显示2个(或可能只是一个)项目.

我不打算在屏幕上说出3个项目,只要显示中心项目,其他项目就可以被裁剪.在小屏幕上可以有1个中心项目,并且当屏幕增大时,应显示多个(裁剪为OK)项目

我知道这看起来像一个画廊但是这些项目不是简单的图像,而是Fragments在每个片段中都有一个可垂直滚动的列表

PS找到了@Commonsware的这篇博文,其中列出了3种不同的方法.根据我的需要,我喜欢#3

在此输入图像描述

android horizontal-scrolling android-viewpager

49
推荐指数
1
解决办法
2万
查看次数

手势检测和ScrollView问题

我正在尝试使用包含ScrollViews的ViewFlipper创建布局.我们的想法是检测水平滑动以移动到上一个/下一个ScrollView.此外,ScrollView包含另一个ViewFlipper,其中包含带有垂直滑动检测器的ImageView,可以转到上一个/下一个ImageView.当我用LinearLayout替换ScrollView时,两个手势检测器都能正常工作,但是使用ScrollView时,没有任何工作(手势监听器甚至不是触发器).为什么使用ScrollView会禁用我的手势检测器?我怎样才能使它工作?

活动

public class ProduitHome extends Activity{  

    private Resources res;
    float density;

    private int position, parent_id;;
    private int num_products;

    private Produit produit;
    private ImageDownloader mImageLoader;   

    private ViewFlipper product_viewflipper;
    private ScrollView current_product_layout;
    Animation next_product_out, next_product_in, previous_product_in, previous_product_out;

    private GestureDetector galleryGestureDetector;
    private View.OnTouchListener galleryGestureListener;

    private GestureDetector productGestureDetector;
    private View.OnTouchListener productGestureListener;

    @Override
    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.produit_home);

        num_products = GlobalData.map_list_produits.get(parent_id).size();

        product_viewflipper = (ViewFlipper) findViewById(R.id.product_viewflipper);

        LayoutInflater inflater = getLayoutInflater();


        // Add num_products view to the viewflipper

        for(int i=0; i<num_products; i++){
            ScrollView product_detail …
Run Code Online (Sandbox Code Playgroud)

android scrollview gesture

31
推荐指数
2
解决办法
3万
查看次数

android:ViewPager和Horizo​​ntalScrollVIew

我有一个HorizontalScrollView内心ViewPager.我requestDisallowInterceptTouchEvent(true);为此设定 了HorizontalScrollViewViewPager仍有时会拦截触摸事件.是否有另一个命令我可以用来阻止View的父级和祖先拦截触摸事件?

注意:HorizontalScrollView只占屏幕的一半.

events android scroll view touch

30
推荐指数
5
解决办法
4万
查看次数

ScrollView中的ViewPager

我需要有一个ViewPager内部a ScrollView但是ViewPager当它进入时不会出现ScrollView,当我不使用时一切都好ScrollView.

我已经在stackoverflow或其他网站上看到过这样的问题,所有这些问题都得到了解答,你必须把它们放到android:fillViewport="true"你的滚动视图来修复问题,但是这个解决方案对我来说ViewPager不起作用,仍然没有出现即使我有android:fillViewport="true"我的ScrollView.

我想在android api中有些东西发生了变化,这个解决方案不再适用了,有没有人知道我怎么可能ViewPager出现在一个ScrollView

更新:一个有效的ScrollView布局XML:

<ScrollView
    android:id="@+id/scrollView1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:fillViewport="true">


    <LinearLayout
        android:id="@+id/linearLayout1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical">

            <android.support.v4.view.ViewPager
                android:id="@+id/itemsViewPager2"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content" >
            </android.support.v4.view.ViewPager>
    </LinearLayout>
 </ScrollView>
Run Code Online (Sandbox Code Playgroud)

android scrollview android-viewpager

21
推荐指数
2
解决办法
1万
查看次数

Android:垂直滚动视图中的水平列表视图?

我想将相同的实现作为脉冲应用程序.

垂直列表视图内的水平列表视图.

在此输入图像描述

我尝试了这个项目的水平列表视图,但当我试图水平滚动时,垂直滚动活动,列表上下移动.我该如何防止这个问题.

android scrollview horizontal-scrolling

21
推荐指数
2
解决办法
1万
查看次数

GridViewPager中的Android Wear WearableListView

我正在构建一个Android Wear应用程序,我希望将其作为几个可以横向滑动的页面呈现.

为此,我使用GridViewPager和相关联的FragmentGridPagerAdapter,它使用单行进行硬连线.这适用于在瓷砖之间水平滑动,但是在我的一个片段中,我想使用WearableListView来允许用户在多个动作之间进行选择.不幸的是,这不起作用,因为看起来GridViewPager阻止任何滑动到达WearableListView.有没有人知道是否有办法可以使用描述的组件完成?

我也尝试过使用标准的ViewPager,这样可以让WearableListView滚动得很好,但是水平滑动变得很好,你经常需要滑动几次才能移动视图寻呼机.

android android-fragments wear-os

18
推荐指数
2
解决办法
5027
查看次数

Android:ScrollView中的Horizo​​ntalScrollView

我在ScrollView中有多个Horizo​​ntalScrollViews.水平滚动根本不平滑.我必须水平滚动几乎完全滚动才能工作.是否有一个简单的修复来调整这个??? 谢谢!

单个ScrollView中的多个Horizo​​ntalScrollViews

java android

15
推荐指数
1
解决办法
1万
查看次数

ScrollView中的ViewPager - 垂直滚动不起作用

所以,我有ScrollView一个孩子 - 一个LinearLayout有两个孩子:a TextView和a ViewPager.ViewPager包含许多元素的布局,这就是为什么我需要垂直滚动的能力.只有页面ViewPager可以水平滚动(即:我只想在其中水平滑动ViewPager).那一个TextView不能水平滚动,但应该与我一起滚动ViewPager.

简单?没有.

我在StackOverflow中看到了非常类似的问题(这里,这里,这里这里).所有建议的解决方案都不适合我:(

我看到的是这个 < - 我的甜蜜UI :),但我无法垂直滚动:(

在ViewPager中嵌入ScrollViews不是一个选项 - UI的设计禁止这样做.

也许这是我用编程方式填充视图寻呼机中的每个页面的东西?嗯...

任何建议,将不胜感激.

我的代码:

activity_main.xml中:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"

                android:id="@+id/scrollView"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:background="@android:color/white"
                android:fillViewport="true" >

                <LinearLayout
                    android:id="@+id/linearLayoutGeneral"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:orientation="vertical">

                    <TextView
                    android:id="@+id/tvText"
                    android:layout_width="fill_parent"
                    android:layout_height="200dp"
                    android:text="Test text" />

                <android.support.v4.view.ViewPager
                            android:id="@+android:id/viewpager"
                            android:layout_width="fill_parent"
                            android:layout_height="fill_parent" >
                </android.support.v4.view.ViewPager>


                </LinearLayout>
</ScrollView>
Run Code Online (Sandbox Code Playgroud)

ViewPager中的每个页面都有这样的布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-scrollview android-viewpager

15
推荐指数
3
解决办法
3万
查看次数