Android ListView内的水平滚动视图未正确滚动
我刚刚在ListView中实现了HorizontalScrollView。但是列表视图并没有平滑地滚动。 我想显示一个列表视图,其中一些列表项有一个水平滚动视图。我的水平滚动平滑,但Listview不平滑 下面是我的代码:Android ListView内的水平滚动视图未正确滚动,android,listview,android-listview,horizontalscrollview,Android,Listview,Android Listview,Horizontalscrollview,我刚刚在ListView中实现了HorizontalScrollView。但是列表视图并没有平滑地滚动。 我想显示一个列表视图,其中一些列表项有一个水平滚动视图。我的水平滚动平滑,但Listview不平滑 下面是我的代码: <ListView android:id="@+id/list_view" android:scrollbars="none" android:visibility="gone" android:
<ListView
android:id="@+id/list_view"
android:scrollbars="none"
android:visibility="gone"
android:divider="@color/LtGreen"
android:dividerHeight="1dp"
android:smoothScrollbar="true"
android:scrollingCache="false"
android:animationCache="false"
android:cacheColorHint="@android:color/transparent"
android:listSelector="@android:color/transparent"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
适配器项的load HorizontalScrollView的代码为-
ScrollHandler mHandel = new ScrollHandler(mHolder.mainLinearType1, position);
mHandel.loadLazyView();
我的经纪人是-
public static class ScrollHandler extends Handler{
LinearLayout mLayout;
int mPosition;
public ScrollHandler(LinearLayout linear,int pos){
mLayout = linear;
mPosition = pos;
}
public void loadLazyView(){
Runnable r = new Runnable() {
@Override
public void run() {
mLayout.removeAllViews();
for (int i = 0; i <mList.get(mPosition).getEventList().size(); i++) {
View additionView = mLayoutInflater.inflate(R.layout.activity_type1_subitem_view, null,false);
FrameLayout innerLinnerLayout=(FrameLayout)additionView.findViewById(R.id.frame_view);
mLayout.addView(innerLinnerLayout);
}
}
};
r.run();
}
}
公共静态类ScrollHandler扩展处理程序{
线性布局mLayout;
整合;
公共ScrollHandler(LinearLayout linear,int-pos){
mLayout=线性;
mPosition=pos;
}
公共void loadLazyView(){
Runnable r=新的Runnable(){
@凌驾
公开募捐{
mllayout.removeallview();
对于(int i=0;i检查:
我认为这就是您所需要的。使用异步任务应该会使它变得平滑。为什么ScrollHandler在没有执行任何特定于处理程序的工作时会扩展处理程序?逻辑可以用简单的方法实现,比如
loadLazyView (LinearLayout linear,int pos){...}
我认为这个列表很慢,因为它有复杂的层次结构。下面的链接列表列出了6种让你的滚动更平滑的方法。如果你已经看到了,请原谅
总结是
减少适配器的getView中使用的条件数
检查并减少日志中出现的垃圾收集警告的数量
如果在滚动时加载图像,请将其删除
将scrollingCache和animateCache设置为false(稍后将对此进行详细介绍)
简化列表视图行布局的层次结构
使用视图保持器样式
您不能在android中进行嵌套滚动,而是查看页眉或页脚
loadLazyView (LinearLayout linear,int pos){...}