2013-04-22 99 views
1

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

编辑:它似乎最简单的方法来做到这一点,而不改变我的整个代码是从列表视图中的scroolview作为标题添加其他项目,所以我不再需要scroolview。

但是,那么listview adaper似乎不工作。我已经看到,我必须使用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); 
+0

如果你把几个元素在列表中,它不会滚动。否则,我真的建议切换到LinearLayout。 – 2013-04-22 10:44:55

+0

问题是,我不知道有多少元素会在我的列表视图中,所以我必须使用更简单的适配器来填充它。 – wazaminator 2013-04-22 10:46:41

+0

我试图使用addHeaderView()来输入另一部分关闭列表视图,但它只是在开始崩溃... – wazaminator 2013-04-22 13:23:22

回答

2

我会用一个View.OnTouchListener,只需使用类似

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

你会把它放在哪里?在Java代码中,在列表视图上,作为新的触摸监听器? – wazaminator 2013-04-22 10:48:19

+0

yes,listview.setOnTouchListener(new View.OnTouchListener(...)); – Goddchen 2013-04-22 10:49:18

+0

该程序只是崩溃...我已经添加了这个,其中聆听是我的听众 聆听。setOnTouchListener(新OnTouchListener(){ \t \t \t \t \t \t \t公共布尔onTouch(视图V,MotionEvent事件){ \t \t \t \t // TODO自动生成方法存根 \t \t \t \t返回FALSE; \t \t \t} \t \t}); – wazaminator 2013-04-22 10:55:26

1

我迄今发现的最好的方法是创建一个自定义listivew。

基本上,您忽略移动事件(发生在触摸和向上之间)。但问题是,当触碰一件物品时,将手指从物品上移开,仍会触发触碰事件。

this link