ListView 实现类似listview + scrollview滚动效果
2014-05-15 09:42
435 查看
android 中通过ListView 实现类似listview + scrollview滚动效果:
主要有以下三个步骤:
1.main_listview.xml布局。
<?xmlversion="1.0"encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#F7F7F7"
android:orientation="vertical">
<ListView
android:id="@+id/money_lv"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="5dip"
android:paddingLeft="5dip"
android:paddingRight="5dip"
android:layout_weight="1"
android:cacheColorHint="@color/transparent"
android:divider="@null"
android:fadeScrollbars="true"
android:scrollbarStyle="outsideOverlay"
android:scrollbarThumbVertical="@drawable/scroll"/>
</ListView>
2. header.xml布局
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
>
<RelativeLayout
android:id="@+id/my_header_rl"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dip"
android:layout_marginBottom="5dip"
>
<TextView
android:id="@+id/my_title_tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:singleLine="true"
android:textColor="#432312"
android:textSize="@dimen/font_title />
<ImageView
android:id="@+id/my_name_img"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:src="@drawable/my_name_img"/>
<ImageView
android:id="@+id/my_age_btn"
android:layout_width="30dip"
android:layout_height="30dip"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="10dip"
android:padding="5dip"
android:clickable="true"
android:visibility="gone"
android:src="@drawable/my_age_img"/>
</RelativeLayout>
</LinearLayout>
3.在代码中按照如下步骤使用就可以。
1) private View headView;
private ListView listView;
private MonkeyInfo mMoneyInfo;
2)headView = LayoutInflater.from(this).inflate(R.layout.header, null);
3)listView = (ListView)findViewById(R.id.money_lv");
listView.addHeaderView(headView);
adapter = new Adapter(MyActivity.this, mMoneyInfo);
如果想让一个布局同listview一块滚动就可以利用listview的headerView和footerView来把布局添加到listview上面。
这样就可以避免了,在外面嵌套一层scrollview而导致的各种问题。
主要有以下三个步骤:
1.main_listview.xml布局。
<?xmlversion="1.0"encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#F7F7F7"
android:orientation="vertical">
<ListView
android:id="@+id/money_lv"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="5dip"
android:paddingLeft="5dip"
android:paddingRight="5dip"
android:layout_weight="1"
android:cacheColorHint="@color/transparent"
android:divider="@null"
android:fadeScrollbars="true"
android:scrollbarStyle="outsideOverlay"
android:scrollbarThumbVertical="@drawable/scroll"/>
</ListView>
2. header.xml布局
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
>
<RelativeLayout
android:id="@+id/my_header_rl"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dip"
android:layout_marginBottom="5dip"
>
<TextView
android:id="@+id/my_title_tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:singleLine="true"
android:textColor="#432312"
android:textSize="@dimen/font_title />
<ImageView
android:id="@+id/my_name_img"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:src="@drawable/my_name_img"/>
<ImageView
android:id="@+id/my_age_btn"
android:layout_width="30dip"
android:layout_height="30dip"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="10dip"
android:padding="5dip"
android:clickable="true"
android:visibility="gone"
android:src="@drawable/my_age_img"/>
</RelativeLayout>
</LinearLayout>
3.在代码中按照如下步骤使用就可以。
1) private View headView;
private ListView listView;
private MonkeyInfo mMoneyInfo;
2)headView = LayoutInflater.from(this).inflate(R.layout.header, null);
3)listView = (ListView)findViewById(R.id.money_lv");
listView.addHeaderView(headView);
adapter = new Adapter(MyActivity.this, mMoneyInfo);
如果想让一个布局同listview一块滚动就可以利用listview的headerView和footerView来把布局添加到listview上面。
这样就可以避免了,在外面嵌套一层scrollview而导致的各种问题。
相关文章推荐
- Android实现 ScrollView + ListView无滚动条滚动
- cocos2d实现类似CCMenu菜单类控件,在CCScrollView滚动, lua脚本控件
- 用HorizontalScrollView布局实现类似Gallery效果
- 使用ScrollView实现滚动效果 出现 ScrollView can host only one direct child (ScrollView只能包裹一个直接子元素)
- ViewPager实现类似广告界面滚动效果
- Android textview和listview实现水平自动滚动的走马灯效果
- Android 实现横向标题栏滚动效果(HorizontalScrollView + GridView + Viewpager + 自定义适配器)
- 实现类似猫眼影片详情页电影海报滚动效果(RcyclerView+LinearSnapHelper )
- [置顶] cocos2d实现类似CCMenu菜单类控件,在CCScrollView滚动, lua脚本控件
- 使用 HorizontalScrollView 实现水平滚动,并点击有相应的反应效果
- ScrollView+ListView滚动冲突,没有滑动效果 解决办法
- Android实现 ScrollView + ListView无滚动条滚动
- Android 中的用HorizontalScrollView布局实现类似Gallery效果
- Android实现 ScrollView + ListView无滚动条滚动
- 微信小程序顶部用 scroll-view 组件横向滚动,类似tab选项卡的效果,
- Android基于ListView实现类似QQ空间的滚动翻页与滚动加载效果
- Android实现 ScrollView + ListView无滚动条滚动 解决2者间的冲突
- Android实现 ScrollView + ListView无滚动条滚动
- 实现类似猫眼影片详情页电影海报滚动效果(ViewPager 两侧显示相邻item)
- Android实现 ScrollView + ListView无滚动条滚动