相关疑难解决方法(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万
查看次数

动态高度viewpager

我正在尝试在自定义滚动视图中创建自定义viewpager,动态包装当前子项的高度.

package com.example.vihaan.dynamicviewpager;

import android.content.Context;
import android.util.AttributeSet;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.widget.ScrollView;

    /**
     * Created by vihaan on 1/9/15.
     */
    public class CustomScrollView extends ScrollView {

        private GestureDetector mGestureDetector;

        public CustomScrollView(Context context, AttributeSet attrs) {
            super(context, attrs);
            mGestureDetector = new GestureDetector(context, new YScrollDetector());
            setFadingEdgeLength(0);
        }

        @Override
        public boolean onInterceptTouchEvent(MotionEvent ev) {
            return super.onInterceptTouchEvent(ev)
                    && mGestureDetector.onTouchEvent(ev);
        }

        // Return false if we're scrolling in the x direction
        class YScrollDetector extends GestureDetector.SimpleOnGestureListener {
            @Override
            public boolean onScroll(MotionEvent e1, MotionEvent e2,
                                    float …
Run Code Online (Sandbox Code Playgroud)

android android-custom-view android-scrollview android-viewpager

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

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万
查看次数

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万
查看次数

ScrollView内的ViewPager无法正常工作

我想在ViewPager里面放CoordinatorLayout一个NestedScrollView.viewpager有3个片段.

问题是片段不可见.选项卡显示,其余布局可见,并相应滚动.

以下是我的布局代码:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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:fitsSystemWindows="true"
    android:orientation="vertical">

    <include layout="@layout/toolbar" />

    <android.support.design.widget.CoordinatorLayout
        android:id="@+id/coordinatorLayout"
        android:layout_below="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/DarkBodyBackground"
        android:fitsSystemWindows="true"
        android:orientation="vertical">

        <android.support.design.widget.AppBarLayout
            android:id="@+id/app_bar_layout"
            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:id="@+id/collapsing_toolbar"
                android:layout_width="match_parent"
                android:layout_height="500dp"
                android:background="@color/DarkBodyBackground"
                android:fitsSystemWindows="true"
                app:contentScrim="?attr/colorPrimary"
                app:expandedTitleMarginEnd="64dp"
                app:expandedTitleMarginStart="48dp"
                app:layout_scrollFlags="scroll|exitUntilCollapsed">

                <include layout="@layout/artist_header" />

            </android.support.design.widget.CollapsingToolbarLayout>
        </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">

            <RelativeLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical">

                <include layout="@layout/loading_indicator" />

                <android.support.design.widget.TabLayout
                    android:id="@+id/tabLayout"
                    style="@style/TabLayoutStyle"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    app:layout_scrollFlags="scroll|enterAlways"
                    app:tabGravity="fill"
                    app:tabMode="fixed" />

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

            </RelativeLayout>
        </android.support.v4.widget.NestedScrollView>
    </android.support.design.widget.CoordinatorLayout> …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-viewpager

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

Android:ScrollView + ViewPager无法正常运行

在我的Android应用程序中,我想在PagerSlidingTab and ViewPager里面实现ScrollView.布局文件如下所示.我面临着奇怪的问题.它仅显示顶部的选项卡条,并且ViewPager屏幕上的Fragment内容不显示任何内容.我不知道hwat是那个问题.如果我从layotu删除ScreollView然后它完美地工作但我想要一切都在里面ScrollView.请帮我解决这个问题.

布局:

<?xml version="1.0" encoding="utf-8"?> 
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <RelativeLayout
        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" >

        <com.danzim.diamond.classes.KenBurnsView
            android:id="@+id/newsHeaderKenburn"
            android:layout_width="match_parent"
            android:layout_height="180dp"
            android:layout_alignParentTop="true"
            android:background="@color/black" />

        <com.astuetz.PagerSlidingTabStrip
            android:id="@+id/newsTabs"
            android:layout_width="match_parent"
            android:layout_height="48dp"
            android:layout_below="@+id/newsHeaderKenburn"
            android:background="@drawable/background_news_tab"
            app:pstsDividerColor="@color/transparent"
            app:pstsIndicatorColor="@android:color/white"
            app:pstsTextAllCaps="true" />

        <android.support.v4.view.ViewPager
            android:id="@+id/newsPager"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/newsTabs" />
    </RelativeLayout>

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

android android-fragments android-scrollview android-viewpager pagertabstrip

3
推荐指数
1
解决办法
3925
查看次数