一.首先要四个布局;
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
android:orientation="vertical"
tools:context="ylkj.com.basetest.SecondActivity"
tools:showIn="@layout/activity_second">
<TextView
android:id="@+id/xx"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/g10"
android:background="@drawable/btn_ripple"
android:gravity="center"
android:padding="@dimen/g10"
android:text="协议" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<!--相对于父容器定位-->
<LinearLayout
android:id="@+id/li1"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_alignParentRight="true"
android:background="#000000"
android:orientation="horizontal" />
<!--水平居中-->
<LinearLayout
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_centerHorizontal="true"
android:background="#e41212"
android:orientation="horizontal" />
<!--根据兄弟组件定位-->
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/li1"
android:layout_marginTop="@dimen/g10">
<LinearLayout
android:id="@+id/li"
android:layout_width="50dp"
android:layout_height="50dp"
android:background="#000000"
android:orientation="horizontal" />
<LinearLayout
android:id="@+id/hou"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_toRightOf="@id/li"
android:background="#e41212"
android:orientation="horizontal" />
</RelativeLayout>
</RelativeLayout>
</LinearLayout>其他的三个都是一样的简单的布局,布局比较简单,这里就不贴出来啦。
二.绑定布局;
list.add(LayoutInflater.from(this).inflate(R.layout.activity_second,null) );三.给个适配器。
public class ViewPagerAdapter1 extends PagerAdapter{
private List<View> list ;
public ViewPagerAdapter1( List<View> list){
this.list = list;
}
//个数
@Override
public int getCount() {
return list.size();
}
//判断instantiateItem(ViewGroup, int)函数所返回来的Key与一个页面视图是否是 代表的同一个视图
@Override
public boolean isViewFromObject(View view, Object object) {
return view == object;
}
//将给定位置的view添加到ViewGroup(容器)中,创建并显示出来 ②
@Override
public Object instantiateItem(ViewGroup container, int position) {
container.addView(list.get(position));
return list.get(position);
}
//除一个给定位置的页面。适配器从容器中删除这个视图。
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView(list.get(position));
}
}
四.最后写activity的实现//最简单的viewPager
public class ViewPagerActivity1 extends AppCompatActivity {
List<View> list ;
private ViewPager viewPager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_view_pager1);
initView();
initData();
}
private void initData() {
list = new ArrayList<>();
list.add(LayoutInflater.from(this).inflate(R.layout.activity_first_first,null) );
list.add(LayoutInflater.from(this).inflate(R.layout.activity_second,null) );
list.add(LayoutInflater.from(this).inflate(R.layout.activity_center,null) );
list.add(LayoutInflater.from(this).inflate(R.layout.activity_six,null) );
ViewPagerAdapter1 viewPagerAdapter1 = new ViewPagerAdapter1(list);
viewPager.setAdapter(viewPagerAdapter1);
}
private void initView() {
viewPager = findViewById(R.id.viewPager1);
}
}
源码地址下载:https://download.csdn.net/download/weixin_42267745/10433573
Android布局与ViewPager适配
本文详细介绍了一个包含多种布局方式的Android应用实例,通过LinearLayout和RelativeLayout实现不同元素的定位,并展示了如何使用ViewPager结合自定义适配器来展示多个布局。
963

被折叠的 条评论
为什么被折叠?



