java - Android fragment view with vertical scrollbar and left and right swipe gesture detection -
i implementing simple jokes app functionality of swipe left , right see next or previous joke. joke long , need scrollbar on textview. however, looks ontouch listener , scrollbar messing each other , after scrolling swipe not work. idea?
<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="#fff" tools:context="com.bontututu.bontu.jokefragment"> <scrollview android:id="@+id/textareascroller" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_x="0px" android:layout_y="25px" android:scrollbars="vertical"> <textview android:id="@+id/txtjoke" style="@style/joketext" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_toleftof="@+id/txtswipeleft" android:layout_torightof="@+id/txtswiperight" android:gravity="center" android:text=""/> </scrollview> <textview android:id="@+id/txtswiperight" style="@style/swipeindicatorstyle" android:layout_width="40dp" android:layout_height="match_parent" android:layout_alignparentleft="true" android:layout_centerinparent="true" android:gravity="center" android:text="☛" android:visibility="gone"/> <textview android:id="@+id/txtswipeleft" style="@style/swipeindicatorstyle" android:layout_width="40dp" android:layout_height="match_parent" android:layout_alignparentright="true" android:layout_centerinparent="true" android:gravity="center" android:text="☚" android:visibility="gone"/> </relativelayout> part of fragment code below.
@override public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) { final view view = inflater.inflate(r.layout.fragment_joke, container, false); _textviewjoke = (textview) view.findviewbyid(r.id.txtjoke); _textviewleftswipeindicator = (textview) view.findviewbyid(r.id.txtswipeleft); _textviewrightswipeindicator = (textview) view.findviewbyid(r.id.txtswiperight); _mainscrollview = (scrollview) view.findviewbyid(r.id.textareascroller); getjokes(); displaycurrentjoke(); view.setontouchlistener(new onswipetouchlistener(getactivity()) { @override public void onswiperight() { _mainscrollview.requestdisallowintercepttouchevent(true); if (_jokes != null) { _currentjokeindex--; displaycurrentjoke(); } } @override public void onswipeleft() { _mainscrollview.requestdisallowintercepttouchevent(true); if (_jokes != null) { _currentjokeindex++; displaycurrentjoke(); } } @override public void onswipetop() { _mainscrollview.requestdisallowintercepttouchevent(false); } @override public void onswipebottom() { _mainscrollview.requestdisallowintercepttouchevent(false); } @override public boolean ontouch(view v, motionevent event) { return gesturedetector.ontouchevent(event); } }); return view; } }
Comments
Post a Comment