ScrollView cannot scroll in Slidinguppanellayout 解决办法


xml源码如下

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white" >

<com.sothree.slidinguppanel.SlidingUpPanelLayout
xmlns:sothree="http://schemas.android.com/apk/res-auto"
android:id="@+id/sliding_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="bottom"
sothree:dragView="@+id/name"
sothree:panelHeight="40dp"
sothree:paralaxOffset="100dp"
sothree:shadowHeight="4dp" >

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
android:orientation="vertical" >

<RelativeLayout
android:id="@+id/rel_top_layout"
android:layout_width="fill_parent"
android:layout_height="50dp"
android:background="@color/t_blue" >

<TextView
android:id="@+id/title_text_tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="统计图"
android:textColor="@color/white"
android:textSize="22sp" />

<Button
android:id="@+id/btn_back"
android:layout_width="50dp"
android:layout_height="fill_parent"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:background="@drawable/back_btn_selector" />
</RelativeLayout>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_margin="10dp"
android:layout_weight="1"
android:background="@drawable/border" >

<LinearLayout
android:id="@+id/chart"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="10dp"
android:orientation="vertical" >
</LinearLayout>
</LinearLayout>

<RadioGroup
android:id="@+id/radiogroup"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="horizontal" >

<RadioButton
android:id="@+id/radio_histogram"
style="@style/param_text_style"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_margin="5dp"
android:layout_weight="1"
android:button="@drawable/radio_btn_selector"
android:onClick="changeGraph"
android:text="柱状图" />

<RadioButton
android:id="@+id/radio_line_graph"
style="@style/param_text_style"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_margin="5dp"
android:layout_weight="1"
android:button="@drawable/radio_btn_selector"
android:onClick="changeGraph"
android:text="折线图" />
</RadioGroup>
</LinearLayout>

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

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clickable="true"
android:focusable="false"
android:orientation="vertical" >

<LinearLayout
android:id="@+id/drag"
android:layout_width="match_parent"
android:layout_height="40dp"
android:orientation="vertical" >

<ImageView
android:id="@+id/up"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#1594df"
android:src="@drawable/icon_up"
android:visibility="visible" />

<ImageView
android:id="@+id/down"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#1594df"
android:src="@drawable/icon_down"
android:visibility="gone" />
</LinearLayout>

<LinearLayout
android:id="@+id/table_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:orientation="vertical" >
</LinearLayout>
</LinearLayout>
</ScrollView>
</com.sothree.slidinguppanel.SlidingUpPanelLayout>

</RelativeLayout>

在Activity中


        slidingUpPanel.setDragView(findViewById(R.id.drag));
// can‘t add this line
// slidingUpPanel.setEnableDragViewTouchEvents(true);

在com.sothree.slidinguppanel.SlidingUpPanelLayout中的onInterceptTouchEvent
处理 case MotionEvent.ACTION_DOWN:


    private boolean isDragViewHit(int x, int y) {
if (isExpanded()) {
// don‘t intercept touch if panel expanded
return false;
} else {
// original implementation - only allow dragging on mDragView
View v = mDragView != null ? mDragView : mSlideableView;
if (v == null)
return false;
int[] viewLocation = new int[2];
v.getLocationOnScreen(viewLocation);
int[] parentLocation = new int[2];
this.getLocationOnScreen(parentLocation);
int screenX = parentLocation[0] + x;
int screenY = parentLocation[1] + y;
return screenX >= viewLocation[0] && screenX < viewLocation[0] + v.getWidth()
&& screenY >= viewLocation[1] && screenY < viewLocation[1] + v.getHeight();
}
}

时间: 2024-10-24 12:15:21

ScrollView cannot scroll in Slidinguppanellayout 解决办法的相关文章

加入ScrollView后OnGestureListener无效的解决办法

android中,ViewFlipper+OnGestureListener可以实现左右滑动效果. 但是在ViewFlipper加上了ScrollView就悲剧了,左右滑动事件无效了…… 这里其实只需要多实现一个方法就是了,主要是把事件交给系统自己处理 在OnGestureListener对象中,实现以下方法 Java代码:   @Override public boolean dispatchTouchEvent(MotionEvent ev){ super.dispatchTouchEven

从ScrollView嵌套EditText的滑动事件冲突分析触摸事件的分发机制以及TextView的简要实现和冲突的解决办法

本篇文章假设读者没有任何的触摸事件基础知识,所以我们会从最基本的触摸事件分发处说起. ScrollView为什么会出现嵌套EditText出现滑动事件冲突呢?相信你会有这种疑问,我们来看这么一种情况: 有一个固定高度的EditText,假设它只能显示3行文本,但是,我们在其中输入的文本多余三行时,那么这时就需要可以在EditText内部进行小幅滚动了.那么将这个EditText放入了ScrollView当中, 并且ScrollView内容过多以致ScrollView也可以滑动,这时候就会出现Ed

ScrollView+ListView滚动冲突,没有滑动效果 解决办法

问题背景 今天做个界面需要在整个布局都要滚动的基础上添加一个ListView元素,整个布局滚动当然用ScrollView.但是在ScrollView+ListView的布局画好后,发现整个界面都无法滚动,而且ListView只显示了第一条元素. 查看布局提示:The vertically scrolling ScrollView should not contain another vertically scrolling widget (ListView). 问题分析: 由上面那个提示可以看到

Android Scrollview 内部组件android:layout_height="fill_parent"无效的解决办法

Found the solution myself in the end. The problem was not with the LinearLayout,  but with the ScrollView (seems weird, considering the fact that the ScrollView was expanding, while the LinearLayout wasn't). The solution was to use android:fillViewpo

ios7 中代码创建 ScrollView TextView 等,默认向下缩进的解决办法

这个问题,记得以前困扰了好久.表现出来的现象就是 ScrollView 中的 ContentView 会往下移动一段距离,现在 textView 也是如此,会自动将光标下移. 后来发现这个距离差不多是 NavigationBar 的高度,才从这里找问题,最终找到了. @property(nonatomic,assign) BOOL automaticallyAdjustsScrollViewInsets NS_AVAILABLE_IOS(7_0); // Defaults to YES 需要设置

ScrollView和系统手势滑动时,冲突问题的解决办法

原文链接:http://blog.csdn.net/hjaycee/article/details/49279951#0-tsina-1-90689-397232819ff9a47a7b7e80a40613cfe1 直接上解决办法: 1.首先自定义一个scrollView,比如:CustomScrollView,遵守<UIGestureRecognizerDelegate>协议,然后在实现文件中写如下代码: -(BOOL)gestureRecognizer:(UIGestureRecogniz

ScrollView嵌套GridView的解决办法

前些日子在开发中用到了需要ScrollView嵌套GridView的情况,由于这两款控件都自带滚动条,当他们碰到一起的时候便会出问题,即GridView会显示不全. 解决办法,自定义一个GridView控件 public class MyGridView extends GridView { public MyGridView(Context context, AttributeSet attrs) {        super(context, attrs);    } public MyGr

Android开发:ScrollView嵌套GridView的解决办法

Android开发:ScrollView嵌套GridView的解决办法 前些日子在开发中用到了需要ScrollView嵌套GridView的情况,由于这两款控件都自带滚动条,当他们碰到一起的时候便会出问题,即GridView会显示不全. 解决办法,自定义一个GridView控件 public class MyGridView extends GridView {      public MyGridView(Context context, AttributeSet attrs) {      

Android ScrollView中的组件设置android:layout_height=&quot;fill_parent&quot;不起作用的解决办法

例子,在ScrollView下加入的组件,无论如何也不能自动扩展到屏幕高度. 布局文件. [html] <?xml version="1.0" encoding="utf-8"?> <!-- 背景:蓝色 --> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"     android:id="@+id/scrollV