i_r*_*aqz 13 android horizontalscrollview
我正在尝试在HorizontalScrollView滚动时收听事件.试过这个,但它没有打印任何东西.
HorizontalScrollView headerScrollView = new HorizontalScrollView(this);
headerScrollView.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
Log.i("hv1",event.toString());
Log.i("hv1","HELLO");
return false;
}
});
Run Code Online (Sandbox Code Playgroud)
实际问题是,我想一次滚动两个HorizontalScrollView...... 当至少其中一个滚动时,它们都需要同时滚动.任何解决方法?
我使用下面的答案,然后尝试实现这个,但我不知道我需要如何使用类中的方法.
TestHorizontalScrollView headerScrollView = (TestHorizontalScrollView) findViewById(R.id.headerHv);
Run Code Online (Sandbox Code Playgroud)
这是我需要指向布局文件中的hsv元素的方式吗?
Dav*_*vid 28
您可能想尝试创建自己的自定义类,该类扩展HorizontalScrollView并覆盖onScrollChanged()函数,因此
public class TestHorizontalScrollView extends HorizontalScrollView {
public TestHorizontalScrollView(Context context) {
super(context);
}
@Override
protected void onScrollChanged(int l, int t, int oldl, int oldt) {
// TODO Auto-generated method stub
Log.i("Scrolling", "X from ["+oldl+"] to ["+l+"]");
super.onScrollChanged(l, t, oldl, oldt);
}
}
Run Code Online (Sandbox Code Playgroud)
即使未触摸视图,此覆盖功能也将捕获滚动位置的所有更改.这应该使您的滚动视图保持同步.
老问题,但也许有帮助.你可以这样做:
scrollOne = (HorizontalScrollView)findViewById(R.id.horizontal_one);
scrollTwo = (HorizontalScrollView)findViewById(R.id.horizontal_two);
scrollTwo.setOnTouchListener(new OnTouchListener(){
@Override
public boolean onTouch(View view, MotionEvent event) {
// TODO Auto-generated method stub
int scrollX = view.getScrollX();
int scrollY = view.getScrollY();
scrollOne.scrollTo(scrollX, scrollY);
return false;
}
});
Run Code Online (Sandbox Code Playgroud)
带监听器的 ScrollView,api < 23
在您的代码中写下
MyHorizontalScrollView scrollView = (MyHorizontalScrollView)view.findViewById(R.id.scrollViewBrowse);
scrollView.setOnScrollChangedListener(new MyHorizontalScrollView.OnScrollChangedListener() {
@Override
public void onScrollChanged(int l, int t, int oldl, int oldt) {
}
});
Run Code Online (Sandbox Code Playgroud)
我的水平滚动视图
public class MyHorizontalScrollView extends ScrollView {
public OnScrollChangedListener mOnScrollChangedListener;
public MyHorizontalScrollView(Context context) {
super(context);
}
public MyHorizontalScrollView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MyHorizontalScrollView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
protected void onScrollChanged(int l, int t, int oldl, int oldt) {
super.onScrollChanged(l, t, oldl, oldt);
if (mOnScrollChangedListener != null) {
mOnScrollChangedListener.onScrollChanged(l, t, oldl, oldt);
}
}
public void setOnScrollChangedListener(OnScrollChangedListener onScrollChangedListener){
this.mOnScrollChangedListener = onScrollChangedListener;
}
public interface OnScrollChangedListener{
void onScrollChanged(int l, int t, int oldl, int oldt);
}
}
Run Code Online (Sandbox Code Playgroud)
* Xml 文件 *
<MyHorizontalScrollView
android:id="@+id/scrollViewBrowse"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:background="@drawable/backgroung"
android:padding="10dp">
</MyHorizontalScrollView>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
32496 次 |
| 最近记录: |