這次要介紹ViewPage這個元件,更正確地說是如何自訂一個叫做NoScrollViewPager的元件。原本我想直接寫教學,但程式是某個老師教的東西所以就不貼,因此寫不使用viewpage滑動功能的教學文。
那麼為何使用無滑動的viewpage?如果要短時間寫一個app,那勢必要做一個容易切換功能的公版/元件,這篇文章也有助於了解,如何自己寫一個class,了解class與layout的關系。
首先,在專案名稱右鍵 > new > JavaClass,加上以下的程式碼:
綠色的部份如果去掉false換回註解,把noscroll改成true就是一般的viewpager
package 你的package名稱; import android.content.Context; import android.support.v4.view.ViewPager; import android.util.AttributeSet; import android.view.MotionEvent; public class NoScrollViewPager extends ViewPager { private boolean noScroll = false; public NoScrollViewPager(Context context, AttributeSet attrs) { super(context, attrs); // TODO Auto-generated constructor stub } public NoScrollViewPager(Context context) { super(context); } public void setNoScroll(boolean noScroll) { this.noScroll = noScroll; } @Override public void scrollTo(int x, int y) { super.scrollTo(x, y); } @Override public boolean onTouchEvent(MotionEvent arg0) { return false; /*if (noScroll) return false; else return super.onTouchEvent(arg0);*/ } @Override public boolean onInterceptTouchEvent(MotionEvent arg0) { return false; /* if (noScroll) return false; else return super.onInterceptTouchEvent(arg0); */ } @Override public void setCurrentItem(int item, boolean smoothScroll) { super.setCurrentItem(item, smoothScroll); } @Override public void setCurrentItem(int item) { super.setCurrentItem(item); } }
其次在src/layout
要換成以下的寫法:
<你的package名稱.NoScrollViewPager android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/view" android:layout_alignParentTop="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" />
傳統的寫法如下,也因此原本的class位置大概在android.support.v4.view這位置
<android.support.v4.view.ViewPager android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/view" android:layout_alignParentTop="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" ></android.support.v4.view.ViewPager>
結果就是上圖只能用按鍵切換fragment,把滑動拿掉的好處是,也許就可以改成最下方有按鈕的模式,兩種方式可以快速切換,程式也就不必做太大的改動。
--
這篇基本上是參考這個網頁寫的。
題外話,因為遇到要用錄影的功能研究了一下,我是先用android studio內建的錄影功能,再用gifs.com轉成gif檔。有機會的話要研究這類型的程式。
--
文章標籤
全站熱搜
留言列表