2013-04-22 95 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