Android 如何在viewpager中添加这样的view

nupthan 2014-07-23 12:58:58
1.首先,已经实现了viewpager,一共三页,其中第二页是listview。代码如下:
<?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:orientation="vertical" >

<ListView
android:id="@+id/page2_list"
android:layout_height="50dip"
android:layout_width="fill_parent"
android:background="#EDEDED"
></ListView>

</LinearLayout>


2.现在想在该页底部实现固定的textview,请教,如何添加。viewpager的初始化代码如下:
private void InitViewPager() {
viewPager=(ViewPager) findViewById(R.id.vPager);
views=new ArrayList<View>();
LayoutInflater inflater=getLayoutInflater();
view1=inflater.inflate(R.layout.pager1, null);
listView = (ListView) inflater.inflate(R.layout.pager2, null).findViewById(R.id.page2_list);
view3=inflater.inflate(R.layout.pager3, null);

//这一部分以后可以通过json或者xml解析来得到。数据库中新建一张课程表,然后通过servlet查询,返回json格式数据。
ArrayList<HashMap<String, String>> alist = new ArrayList<HashMap<String,String>>();
String[] lessons = new String[]{"瑜伽", "肚皮舞", "爵士"};
String[] time = new String[]{"17:30", "18:20", "19:30"};
for (int i = 0; i < 4; i++) {
for (int j = 0; j < lessons.length; j++) {
HashMap<String , String> map = new HashMap<String, String>();
map.put("lesson", lessons[j]);
map.put("time", time[j]);
alist.add(map);
}
}
SimpleAdapter simpleAdapter = new SimpleAdapter(MainActivity.this, alist, R.layout.pager2_list_item, new String[]{"lesson", "time"}, new int[]{R.id.page2_list_text1, R.id.pager2_list_text2});
listView.setAdapter(simpleAdapter);

views.add(view1);
views.add(listView);
views.add(view3);
viewPager.setAdapter(new MyViewPagerAdapter(views));
viewPager.setCurrentItem(0);
viewPager.setOnPageChangeListener(new MyOnPageChangeListener());
}

初学android,请各位大神指导。谢谢!
...全文
2792 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
crazy_sniper 2014-07-24
  • 打赏
  • 举报
回复
引用 15 楼 nupthan 的回复:
[quote=引用 14 楼 jeky198306 的回复:] 将listview和textview分开来看,各自负责显示,只是在一个layout里面定义而已
有个demo就好了。谢谢。[/quote] 少年,你把LinearLayout换成FrameLayout 就可以了,12L
lionfresh 2014-07-23
  • 打赏
  • 举报
回复
引用 8 楼 nupthan 的回复:
[quote=引用 4 楼 lionfresh 的回复:] 你textview是要加在listview下面,还是ViewPager 下面?
请教,下面和上面有什么区别?是不是如果在下面,有能够直接使用的api。我主要就是想实现滑动listview的时候,这个textview保持不动。[/quote] 如果是在listview下加,就使用listView的addFooterView方法,如果是layout下的话,使用<include layout="@layout/footer" />,根据你的需求,应该使用后者。
nupthan 2014-07-23
  • 打赏
  • 举报
回复
引用 4 楼 lionfresh 的回复:
你textview是要加在listview下面,还是ViewPager 下面?
请教,下面和上面有什么区别?是不是如果在下面,有能够直接使用的api。我主要就是想实现滑动listview的时候,这个textview保持不动。
nupthan 2014-07-23
  • 打赏
  • 举报
回复
引用 5 楼 wlianghe00 的回复:
只用用Relativelayout,在textview放在底部,listview在他的上边
这样的布局之后,那我再MainActivity中怎么添加这个view呢。是不是需要先定义一个类,然后将我需要的view绘制出来,返回,然后在上述代码中调用viewpager的add方法添加这个view?
nupthan 2014-07-23
  • 打赏
  • 举报
回复
引用 2 楼 han1202012 的回复:
直接在布局文件上改啊, 把 ViewPager 放在 LinearLayout 里面, 在 ViewPager 控件下面放一个 TextView 啊
可能我表达有误,我只是想单独在第二个页面中添加这样的TextView。
nupthan 2014-07-23
  • 打赏
  • 举报
回复
引用 14 楼 jeky198306 的回复:
将listview和textview分开来看,各自负责显示,只是在一个layout里面定义而已
有个demo就好了。谢谢。
jeky_zhang2013 2014-07-23
  • 打赏
  • 举报
回复
将listview和textview分开来看,各自负责显示,只是在一个layout里面定义而已
Utopia 2014-07-23
  • 打赏
  • 举报
回复
只用用Relativelayout,在textview放在底部,listview在他的上边
lionfresh 2014-07-23
  • 打赏
  • 举报
回复
你textview是要加在listview下面,还是ViewPager 下面?
daydreary 2014-07-23
  • 打赏
  • 举报
回复
既然你listview高度写死了 , 在下面加个textview不就可以了吗。。这个应该很简单吧,还是我理解的有问题?
韩曙亮 2014-07-23
  • 打赏
  • 举报
回复
直接在布局文件上改啊, 把 ViewPager 放在 LinearLayout 里面, 在 ViewPager 控件下面放一个 TextView 啊
summersrest 2014-07-23
  • 打赏
  • 举报
回复
给这个listview添加footview啊。listView.addFootView();
nupthan 2014-07-23
  • 打赏
  • 举报
回复
引用 11 楼 lionfresh 的回复:
[quote=引用 10 楼 nupthan 的回复:] [quote=引用 9 楼 lionfresh 的回复:] [quote=引用 8 楼 nupthan 的回复:] [quote=引用 4 楼 lionfresh 的回复:] 你textview是要加在listview下面,还是ViewPager 下面?
请教,下面和上面有什么区别?是不是如果在下面,有能够直接使用的api。我主要就是想实现滑动listview的时候,这个textview保持不动。[/quote] 如果是在listview下加,就使用listView的addFooterView方法,如果是layout下的话,使用<include layout="@layout/footer" />,根据你的需求,应该使用后者。[/quote] 试了一下貌似还不行。
<?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:orientation="vertical" >
    
    <ListView 
        android:id="@+id/page2_list"
        android:layout_height="50dip"
        android:layout_width="fill_parent"
        android:background="#EDEDED"
        ></ListView>
    
    <include layout="@layout/pager2_foot"/>
    
</LinearLayout>
[/quote] 将LinearLayout 改为RelativeLayout[/quote] 除此以外,我还需要在MainActivity中做怎样的修改,现在,我viewpager中第二页直接使用的是ListView,代码如上,该如何修改?谢谢指导。
crazy_sniper 2014-07-23
  • 打赏
  • 举报
回复
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <ListView
        android:id="@+id/page2_list"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#EDEDED" >
    </ListView>

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom"
        android:gravity="center" />

</FrameLayout>
lionfresh 2014-07-23
  • 打赏
  • 举报
回复
引用 10 楼 nupthan 的回复:
[quote=引用 9 楼 lionfresh 的回复:] [quote=引用 8 楼 nupthan 的回复:] [quote=引用 4 楼 lionfresh 的回复:] 你textview是要加在listview下面,还是ViewPager 下面?
请教,下面和上面有什么区别?是不是如果在下面,有能够直接使用的api。我主要就是想实现滑动listview的时候,这个textview保持不动。[/quote] 如果是在listview下加,就使用listView的addFooterView方法,如果是layout下的话,使用<include layout="@layout/footer" />,根据你的需求,应该使用后者。[/quote] 试了一下貌似还不行。
<?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:orientation="vertical" >
    
    <ListView 
        android:id="@+id/page2_list"
        android:layout_height="50dip"
        android:layout_width="fill_parent"
        android:background="#EDEDED"
        ></ListView>
    
    <include layout="@layout/pager2_foot"/>
    
</LinearLayout>
[/quote] 将LinearLayout 改为RelativeLayout
nupthan 2014-07-23
  • 打赏
  • 举报
回复
引用 9 楼 lionfresh 的回复:
[quote=引用 8 楼 nupthan 的回复:] [quote=引用 4 楼 lionfresh 的回复:] 你textview是要加在listview下面,还是ViewPager 下面?
请教,下面和上面有什么区别?是不是如果在下面,有能够直接使用的api。我主要就是想实现滑动listview的时候,这个textview保持不动。[/quote] 如果是在listview下加,就使用listView的addFooterView方法,如果是layout下的话,使用<include layout="@layout/footer" />,根据你的需求,应该使用后者。[/quote] 试了一下貌似还不行。
<?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:orientation="vertical" >
    
    <ListView 
        android:id="@+id/page2_list"
        android:layout_height="50dip"
        android:layout_width="fill_parent"
        android:background="#EDEDED"
        ></ListView>
    
    <include layout="@layout/pager2_foot"/>
    
</LinearLayout>

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧