gpt4 book ai didi

android - ScrollView 中水平回收 View 的滚动问题

转载 作者:太空宇宙 更新时间:2023-11-03 10:35:31 25 4
gpt4 key购买 nike

我的主页上有一个 ScrollView ,在该 ScrollView 内有 2 个布局,每个布局用于一个回收 View ,每个回收 View 将水平滚动。当我尝试滚动 recyclerview 时,scrollview 的滚动被中断并且 scrollview 开始在垂直方向滚动。所以我尝试了下面的代码。

mRecyclerView.addOnItemTouchListener(new RecyclerView.OnItemTouchListener() {
@Override
public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) {
int action = e.getAction();
switch (action) {
case MotionEvent.ACTION_MOVE:
rv.getParent().requestDisallowInterceptTouchEvent(true);
break;
}
return false;
}

@Override
public void onTouchEvent(RecyclerView rv, MotionEvent e) {

}

@Override
public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) {

}
});

然后当我触摸 recyclerview 时我可以控制水平滚动,但现在的问题是当我触摸 recyclerview 时我无法垂直滚动我的 scrolview。任何建议请。我的确切需求是我需要 ScrollView ,并且在 ScrollView 中有几个 recyclerviews,它将像 google play 商店应用程序一样工作。

enter image description here

这是我的布局

<com.sothree.slidinguppanel.SlidingUpPanelLayout
android:id="@+id/sliding_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
sothree:umanoPanelHeight="368dp"
sothree:umanoParallaxOffset="2dp"
sothree:umanoOverlay="false"
android:gravity="bottom"
sothree:umanoFadeColor="#00000000"
sothree:umanoDragView="@+id/dragView"
sothree:umanoScrollableView="@+id/svScroll"
sothree:umanoShadowHeight="0dp">

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

</LinearLayout>

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

<android.support.v7.widget.RecyclerView
android:id="@+id/menu"
android:layout_width="match_parent"
android:layout_height="wrap_content" />

<ScrollView
android:id="@+id/svScroll"
android:layout_width="match_parent"
android:layout_height="wrap_content">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v4.view.ViewPager
android:id="@+id/vpImage"
android:layout_width="match_parent"
android:clickable="false"
android:layout_height="170dp" />
<ImageView
android:id="@+id/ivDefaultAd"
android:layout_width="match_parent"
android:layout_height="170dp"
android:scaleType="centerCrop"
android:src="@drawable/default_ad"/>

</FrameLayout>
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
card_view:cardBackgroundColor="@color/transparent"
android:layout_marginBottom="@dimen/space_1_5x"
android:layout_marginTop="@dimen/space_1_5x">

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

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:gravity="center_vertical"
android:orientation="horizontal"
>

<ImageView
android:layout_width="25dp"
android:layout_height="25dp"
android:layout_marginLeft="@dimen/space_2x"
android:src="@drawable/ic_image"
android:tint="@color/blue"/>

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:padding="@dimen/space_2x"


android:textSize="@dimen/txt_x_medium" />

<TextView

android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:text="@string/more"
android:textColor="@color/more_orange"
android:textSize="@dimen/txt_medium"
tools:ignore="UnusedAttribute" />
<ImageView
android:layout_width="15dp"
android:layout_height="15dp"
android:tint="@color/more_orange"
android:layout_marginRight="@dimen/space_2x"
android:src="@drawable/ic_right_arrow_small"/>
</LinearLayout>

<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/light_gray1" />

<FrameLayout
android:layout_width="match_parent"
android:layout_height="150dp"
android:focusableInTouchMode="true"
android:focusable="true"
android:background="@color/white">
<com.wang.avi.AVLoadingIndicatorView
android:id="@+id/avi"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_gravity="center"

app:indicatorName="LineSpinFadeLoaderIndicator" />

<android.support.v7.widget.RecyclerView

android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/transparent"
android:orientation="horizontal" />
<LinearLayout

android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
android:gravity="center"
android:visibility="gone">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/txt_msg_no_data"
android:textColor="@color/no_items_txt_color"
android:textSize="@dimen/txt_x_medium" />
</LinearLayout>
</FrameLayout>

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

<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
card_view:cardBackgroundColor="@color/transparent">

<LinearLayout

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

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:gravity="center_vertical"
android:orientation="horizontal"
android:tag="sticky">

<ImageView
android:layout_width="25dp"
android:layout_height="25dp"
android:layout_marginLeft="@dimen/space_2x"

android:tint="@color/blue"
android:contentDescription="@string/content_desc"/>

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:padding="@dimen/space_2x"
android:textSize="@dimen/txt_x_medium" />

<TextView

android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:text="@string/more"
android:textColor="@color/more_orange"
android:textSize="@dimen/txt_medium"
tools:ignore="UnusedAttribute" />
<ImageView
android:layout_width="15dp"
android:layout_height="15dp"
android:tint="@color/more_orange"
android:layout_marginRight="@dimen/space_2x"
android:src="@drawable/ic_right_arrow_small"/>
</LinearLayout>

<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/light_gray1" />

<FrameLayout
android:layout_width="match_parent"
android:layout_height="150dp"
android:background="@color/white">
<com.wang.avi.AVLoadingIndicatorView
android:id="@+id/avLoader2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_gravity="center"

app:indicatorName="LineSpinFadeLoaderIndicator" />

<android.support.v7.widget.RecyclerView

android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/transparent" />
<LinearLayout

android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
android:gravity="center"
android:visibility="gone">

<CanaroTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/txt_msg_no_data"
android:textColor="@color/no_items_txt_color"
android:textSize="@dimen/txt_x_medium" />
</LinearLayout>

</FrameLayout>
</LinearLayout>
</android.support.v7.widget.CardView>
</LinearLayout>
</ScrollView>


</LinearLayout>
</com.sothree.slidinguppanel.SlidingUpPanelLayout>

最佳答案

你应该使用 NestedScrollView 而不是 scrollview

NestedScrollView is just like ScrollView, but it supports acting as both a nested scrolling parent and child on both new and old versions of Android. Nested scrolling is enabled by default.

阅读 ScrollView vs NestedScrollView

并且不要忘记制作您的Recycelrveiw setNestedScrollingEnabled(false);

setNestedScrollingEnabled(boolean enabled)

it Enable or disable nested scrolling for this view.

代码

YourRecyclerView.setNestedScrollingEnabled(false);

关于android - ScrollView 中水平回收 View 的滚动问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46418814/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com