首先我們來看看運行之後的效果: 然後我們也不多說廢話了,下麵是這個項目所需要的全部代碼,很多博主寫這個都不把代碼寫完,因此筆者自己也琢磨了一會兒才把這個弄出來,感覺很煩,但我肯定會把代碼寫全的。我這裡一共引入了三個界面,三個佈局的xml我都會寫的。 1.MainActivity.java 2.Myp ...
- 首先我們來看看運行之後的效果:
然後我們也不多說廢話了,下麵是這個項目所需要的全部代碼,很多博主寫這個都不把代碼寫完,因此筆者自己也琢磨了一會兒才把這個弄出來,感覺很煩,但我肯定會把代碼寫全的。我這裡一共引入了三個界面,三個佈局的xml我都會寫的。
1.MainActivity.java
import android.support.v4.view.ViewPager; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import java.util.ArrayList; public class MainActivity extends AppCompatActivity { private ViewPager vpager_one; private ArrayList<View> aList; private MyPagerAdapter mAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); vpager_one = (ViewPager) findViewById(R.id.vpager_one); aList = new ArrayList<View>(); LayoutInflater li = getLayoutInflater(); aList.add(li.inflate(R.layout.view_one,null,false)); aList.add(li.inflate(R.layout.view_two,null,false)); aList.add(li.inflate(R.layout.view_three,null,false)); mAdapter = new MyPagerAdapter(aList); vpager_one.setAdapter(mAdapter); } }
2.MypagerAdapter.java
這個是ViewPager的適配器,和listview所需要的適配器差不多,是我們創建的新類。
import android.support.v4.view.PagerAdapter; import android.view.View; import android.view.ViewGroup; import java.util.ArrayList; public class MyPagerAdapter extends PagerAdapter { private ArrayList<View> viewLists; public MyPagerAdapter() { } public MyPagerAdapter(ArrayList<View> viewLists) { super(); this.viewLists = viewLists; } @Override public int getCount() { return viewLists.size(); } @Override public boolean isViewFromObject(View view, Object object) { return view == object; } @Override public Object instantiateItem(ViewGroup container, int position) { container.addView(viewLists.get(position)); return viewLists.get(position); } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView(viewLists.get(position)); } }
3.activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <android.support.v4.view.ViewPager android:id="@+id/vpager_one" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" /> </android.support.constraint.ConstraintLayout>
4.view_one
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#FFBA55" android:gravity="center" android:orientation="vertical"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="第一個Page" android:textColor="#000000" android:textSize="18sp" android:textStyle="bold" /> </LinearLayout>
5.view_two
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#FFBA55" android:gravity="center" android:orientation="vertical"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="第二個Page" android:textColor="#000000" android:textSize="18sp" android:textStyle="bold" /> </LinearLayout>
6.view_three
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#FFBA55" android:gravity="center" android:orientation="vertical"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="第三個Page" android:textColor="#000000" android:textSize="18sp" android:textStyle="bold" /> </LinearLayout>
得解,就這麼簡單。我真是不知道其他博主為啥不把代碼寫全,尤其是每個viewpager的佈局,連說都不說下有三個佈局,真實讓人頭大。