- 浏览: 419311 次
- 性别:
- 来自: 南京
文章分类
最新评论
-
moshav:
感谢,刚好找到这个方法,用到后一种方式。
发生android.view.ViewRoot$CalledFromWrongThreadException异常的解决方案 -
jj_zerogra:
jj_zerogra 写道请问这个工程结构是什么样的?我按照你 ...
移植libharu至android -
jj_zerogra:
请问这个工程结构是什么样的?我按照你的文章实现的编译.so库总 ...
移植libharu至android -
lixiaolongxuexi:
如果代码中有自定义的View 还有可能是没有移除掉当前的Vie ...
【转】Activity has leaked window which that was originally added here -
yajun_soft:
在 10.04 的版本里不能用,怎么办?
ubuntu下面好用的查看android数据库的工具
在ScrollView中加入ListView时,有个很棘手的BUG,就只能显示出ListView的一行半左右。
ListView 本来是不应该 放在 ScrollView 里的,Google员工 Roman Guy早已回复:
"There is no need to put a ListView in a ScrollView since ListView already supports scrolling. Do NOT put a ListView inside a ScrollView. ListView already handles scrolling, you’re only going to run into trouble. "
我当然是不想自找麻烦,把ListView往ScrollView里面加的,但是项目中有这个需求。
大致发现有以下几种方法:
法一:
一个Activity,其中不只有ListView一个控件,还有其他的TextView、ImageView、Button等等很多控件,这样很可能会 占据屏幕很大一部分,要知道手机的屏幕只有480像素,通常的想法是给这个Activity加上一个ScrollView,让其有滚动条,但是会发现 ListView的高度不是随着内容而自动填充的。那么我们可以使用ListView的addHeaderView 以及addFooterView 为ListView增加上下的头和尾,这样就可以让ListView填充到整个屏幕。
步骤:
1) 新建一个Layout: demo_list_item_header_view.xml:
<linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content"> <textview android:text="TestListViewHeader" android:id="@+id/headerTextView" android:textsize="20sp" android:layout_width="wrap_content" android:layout_height="30sp"> </textview> </linearlayout>
2) 新建一个类,继承自LinearLayout用来显示上面的Layout:
DemoListHeaderView.java
package com.zhang.test.view; import com.zhang.test.R; import android.content.Context; import android.util.AttributeSet; import android.view.LayoutInflater; import android.view.View; import android.widget.LinearLayout; import android.widget.TextView; public class DemoListHeaderView extends LinearLayout { private static final String TAG = "DemoListHeaderView"; private Context context; private TextView textView; public DemoListHeaderView(Context context, AttributeSet attrs) { super(context, attrs); initialize(context); } public DemoListHeaderView(Context context) { super(context); initialize(context); } private void initialize(Context context) { this.context = context; View view = LayoutInflater.from(this.context).inflate(R.layout.demo_list_item_header_view, null); textView = (TextView) view.findViewById(R.id.headerTextView); addView(view); } public void setTextView(String text) { textView.setText(text); } }
之后在ListView设置setAdapter之前,一定要在setAdapter之前
加上代码:
DemoListHeaderView headerView = new DemoListHeaderView(context); headerView.setTextView("Header : "); listView.addHeaderView(headerView); DemoListHeaderView footerView = new DemoListHeaderView(context); footerView.setTextView("Footer : "); listView.addFooterView(footerView);
全部:
package com.zhang.test; import java.util.ArrayList; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.widget.ListView; import com.zhang.test.view.DemoListHeaderView; import com.zhang.test.view.DemoListItemView; import com.zhang.test.view.adapter.DemoListAdapter; public class demoActivity extends Activity { private static final String TAG = "demoActivity"; private Context context; private ListView listView; private ArrayList<demolistitemview.data> datas; private DemoListAdapter datasAdapter; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); context = this; listView = (ListView) findViewById(R.id.listView); datas = new ArrayList<demolistitemview.data>(); loadData(); datasAdapter = new DemoListAdapter(context, datas); DemoListHeaderView headerView = new DemoListHeaderView(context); headerView.setTextView("Header : "); listView.addHeaderView(headerView); DemoListHeaderView footerView = new DemoListHeaderView(context); footerView.setTextView("Footer : "); listView.addFooterView(footerView); listView.setAdapter(datasAdapter); } private void loadData() { DemoListItemView.Data d; for(int i=0; i<10; i++) { d = new DemoListItemView.Data(); d.topText = "测试top"; d.bottomText = "测试bottom"; datas.add(d); } } }
评论
</demolistitemview.data></demolistitemview.data> 里面又有什么啊??
</demolistitemview.data></demolistitemview.data> 里面又有什么啊??
发表评论
-
[转]关于Android的.so文件你所需要知道的
2016-03-31 12:02 0http://www.jianshu.com/p/cb0569 ... -
【转】Android持续优化 - 提高流畅度
2016-03-18 14:38 565http://www.cnblogs.com/purediy ... -
onAttach有时不会被调用
2016-03-01 11:38 1028activity继承自FragmentActivity ... -
MQTT实现
2016-03-02 12:22 23891. 编译MQTT客户端架包 我选的是 Eclipse ... -
【转】方法数超过65k
2015-11-17 20:39 0http://blog.csdn.net/yuanzeya ... -
【转】android ImageView 宽度设定,高度自适应
2015-10-13 11:11 1811http://www.cnblogs.com/bcbr/a ... -
Dialog最好不要判断是否为空, 每次都直接new
2015-10-08 19:06 1830异常: android.view.WindowManag ... -
android 客户端 支付宝SDK登陆后 账号如何切换
2015-08-25 19:06 1017在集成了支付宝的测试APP中,付款时填写了自己的用户名和密 ... -
【转】PopupWindow在oncreate中showAtLocation时, WindowManager$BadTokenException
2015-08-20 11:57 0转自 http://blog.csdn.net/ekeuy ... -
setText有时会有BUG,更改不了文字
2015-08-04 11:23 1240重写了ListView, adapter写的也没什么问题。 ... -
【转】 关于Android堆内存的设置
2015-06-25 10:55 602转自 http://www.cnblogs.com/jack ... -
【转】android 开发如何做内存优化
2015-12-04 20:52 703转两个不错的总结 http://www.cnblogs. ... -
移植libharu至android
2013-09-05 13:42 1978NDK编译 开始一直还天真的以为在桌面下编好的/usr ... -
【转】解决Android SDK Manager 更新、下载慢以及待安装包列表不显示
2013-08-30 17:44 950转自 http://www.cnblogs.com/tc3 ... -
【转】android中scrollview嵌套HorizontalScrollView导致横向滑动卡顿现象解决
2012-11-09 10:42 2662转载自:IT驿站 [http://www.blogche ... -
onFling为什么执行不到
2012-09-04 09:48 1198因为onDown方法return了false,导致依赖于onD ... -
Unable to launch app or broadcast Intent process is bad
2012-08-22 17:38 4688怎么回事啊!!! 开始还好好的,后来不晓得怎么了,装w ... -
java.lang.NoClassDefFoundError: com.jayway.android.robotium.solo.Solo
2012-08-15 16:38 1094很奇怪,明明classpath设置的好好的,还是报错,用网上的 ... -
surfaceview 导致屏幕闪
2012-08-08 13:46 1758原因暂时发现 canvas = getHolder().lo ... -
【转】Android getWidth和getMeasuredWidth
2012-07-20 10:51 1881以前做项目的时候用到过,也不是很明白,现在看了别人的总结,转来 ...
相关推荐
在本项目中,我们探讨的是如何在一个ScrollView中嵌套一个ListView来实现自定义的时间轴,同时涉及到布局的动态显示与隐藏。这种设计模式常见于长篇内容展示或历史记录的场景,例如日志、活动流等。 首先,我们来...
Android PullToRefresh 下拉刷新,上拉更多,支持ScrollView,ListView,可方便拓展GridView,WebView等,我主要测试了ScrollView,ListView代码中已实现不过没怎么测,其他的还是很好拓展的的,在isReadyForPullUp...
在Android的UI组件中,ListView和GridView通常用于展示大量的数据,而ScrollView则适用于单个视图的滚动。然而,原生的这些组件并不内置上拉下拉刷新的功能。`ZrcListView`通过封装和扩展这些组件,实现了这个实用...
以下我们将详细探讨如何在ListView、RecyclerView和ScrollView中实现这一功能。 首先,我们来看ListView的实现。ListView是Android早期常用的列表控件,它可以动态加载数据并进行滚动。要添加一键回到顶部的功能,...
3. **ListView的适配器**:在实现下拉刷新时,可能需要更新`ListView`的数据源,这就涉及到对Adapter的操作。适配器负责将数据转化为列表项视图,并将其绑定到`ListView`上。在刷新完成后,我们可以通过`adapter....
本示例"Android中ListView结合CheckBox获取选中项.rar"旨在教授如何在ListView中集成CheckBox,并有效地获取用户选择的数据。 1. **ListView基本使用** - ListView是一个可以滚动的视图,它能显示一行行的数据。...
通过以上步骤,我们就成功地在ScrollView中实现了标题显示和隐藏的功能,并且在切换过程中加入了动画效果。这个功能可以应用于各种需要动态控制标题显示的应用场景,提高了用户体验和界面的灵活性。在实际开发中,...
总结来说,解决Android中GridView嵌套在ScrollView里只显示一行的问题,可以通过计算子项高度并设置ListView或GridView的高度,或者重写它们的onMeasure方法来实现。这两种方法都可以有效地让ScrollView正确滚动到...
标题置顶是指当用户滚动ListView时,某个特定的标题项(通常对应一个数据分组)会固定在屏幕顶部,即使在列表滚动过程中,这个标题依然可见,直到下一个标题出现并将其替换。这使得用户在浏览长列表时能清晰地识别...
前些日子项目要在原来的页面上加入渐变导航栏的功能,查了很多资料,很多资源都是监听到listview的高度来实现渐变导航栏的效果,可是项目里面很多的界面都是使用ScrollView来实现滑动效果。 实在没办法,就自己写了...
在本示例中,我们将关注如何仿照新浪微博实现这一特性,并且加入自定义动画效果。 1. **下拉刷新(Pull-to-Refresh)机制** 下拉刷新通常通过一个可滚动视图(如ScrollView、ListView或RecyclerView)来实现。当...
现在也加入了DataBinding用的BaseAdapter。 Related posts: 相关博文: ViewGroup 篇 封装博文 DataBinding 篇 封装博文 If you like, point a star .Thank you very much! 喜欢随手点个star 多谢 The ultimate
如果没有效果,可以在 layout 布局中父控件中加入 android:layout_width="fill_parent" 和 android:layout_height="fill_parent" 属性。 解决软键盘覆盖界面问题可以通过在布局之外添加一层 <ScrollView> 来实现。 ...
在Android开发中,`Scroll` 是一个非常关键的机制,它允许用户通过触摸屏幕来滚动内容,例如在ListView、ScrollView或者ViewPager中。本篇将详细探讨Android中的滚动机制,特别是如何通过Scroll实现ViewGroup的滚动...
这通常发生在`ScrollView`、`ListView`或`ViewPager`等可以滚动的视图组件中。当用户进行非滚动意图的手势操作时,如果这些组件错误地捕获了手势,就会导致意外的页面滑动。为了避免这种情况,开发者需要精细地控制...
在Android开发中,SwipeRefreshLayout是谷歌提供的一种标准的下拉刷新控件,它通常与RecyclerView或ListView等列表组件配合使用,允许用户通过从顶部向下滑动来触发刷新操作。在这个自定义版本中,开发者不仅保留了...
在Cocos Creator中,通过自定义组件或使用内置的ScrollView组件,可以实现类似iOS中的UITableView或者Android上的RecyclerView的功能。 2. **回收机制**:为了提高性能,TableView实现了一个对象池(Pool)的概念。...
在提供的代码片段中,开发者自定义了一个名为`MyScrollView`的类,继承自ScrollView。这个类的主要功能是实现瀑布流布局的滑动监听和处理逻辑。 1. **属性介绍**: - `View view`:表示当前布局视图。 - `Handler...
"pulltorefresh"通常与ListView、ScrollView或者RecyclerView等滚动视图结合,以便在数据需要更新时提供直观的用户体验。 在描述中提到的"简单到谁都能看懂"意味着这个实现可能具有良好的可读性和易用性,对于...