【问题标题】:android make a listview un-scrollableandroid使列表视图不可滚动
【发布时间】:2013-04-22 10:43:48
【问题描述】:

我试图阻止列表视图滚动。 我在其他主题(例如How to get a non scrollable ListView?)上看到过使用线性布局。 但是,这在我的应用程序中是不可能的,我的列表视图是可编程填充的,所以我需要这个组件。 感谢回复

编辑:在不更改我的整个代码的情况下,似乎最简单的方法是将列表视图中 scroolview 中的其他项目添加为标题,因此我不再需要 scroolview。

但是,listview 适配器似乎无法正常工作。我已经看到我必须使用 WrappedListadapter,但我不知道该怎么做。

这是我用来设置适配器的代码:

    SimpleAdapter mSchedule = new SimpleAdapter(this.getBaseContext(), listItem, R.layout.consultafficheitem,
           new String[] {"description", "ingredient"}, new int[] {R.id.consultlistdescription, R.id.consultlistingredients});


    scroll = (RelativeLayout) findViewById(R.id.consultscrollrelativelayout);
    liste.addHeaderView(scroll);

    liste.setAdapter(mSchedule);

【问题讨论】:

  • 如果您在列表中放置的元素很少,它将无法滚动。否则,我真的建议切换到 LinearLayout。
  • 问题是,我不知道我的列表视图中有多少元素,所以我必须使用更简单的适配器来填充它。
  • 我尝试使用 addHeaderView() 进入列表视图内的其他部分,但它只是在启动时崩溃...
  • 如果你不知道元素计数为什么要阻止它滚动?
  • 我想要实现的是在同一个滚动中获得相对布局和我的列表视图,如果我的 listviex 滚动,上滚动不起作用。我尝试使用 addheader(view) 但随后应用程序崩溃了

标签: android listview scroll


【解决方案1】:

我会使用 View.OnTouchListener 并简单地使用类似的东西

if(event.getAction == MotionEvent.ACTION_MOVE) {
     // Ignore move events
     return true;
} else {
     return false;
}

【讨论】:

  • 你会把它放在哪里?在 Java 代码中,在列表视图中,作为新的触摸监听器?
  • 是的,listview.setOnTouchListener(new View.OnTouchListener(...));
  • 程序刚刚崩溃...我已经添加了这个,其中 liste 是我的 listeview liste.setOnTouchListener(new OnTouchListener() { public boolean onTouch(View v, MotionEvent event) { // TODO Auto - 生成的方法存根返回 false; } });
【解决方案2】:

到目前为止我发现的最好方法是创建一个自定义列表。

基本上,您会忽略移动事件(发生在触地和触地之间)。但问题是当触摸一个项目时,然后将手指移出该项目,它仍然会触发触摸事件。

this link

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-05
    • 1970-01-01
    • 1970-01-01
    • 2013-08-24
    • 1970-01-01
    相关资源
    最近更新 更多