2014-09-25 5 views
0

У меня есть listview внутри scrollview. Это мой файл XMLListview не прокручивается внутри scrollview

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:background="#ffffff" > 

<ScrollView 
    android:id="@+id/scrollView2" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_below="@+id/viewtop" 
    android:layout_marginBottom="10dp" 
    android:fadingEdgeLength="0dp" 
    android:fillViewport="true" 
    android:overScrollMode="never" 
    android:scrollbars="none" > 

    <RelativeLayout 
     android:id="@+id/rel111" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="10dp" > 

     <TextView 
      android:id="@+id/textView3" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:padding="8dip" 
      android:text="@string/franchise" 
      android:textSize="25dp" 
      android:textStyle="bold" /> 

     <TextView 
      android:id="@+id/textView5" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_below="@+id/textView3" 
      android:layout_marginLeft="33dp" 
      android:layout_marginTop="10dp" 
      android:padding="8dip" 
      android:text="@string/neworder" 
      android:textSize="20dp" /> 

     <TextView 
      android:id="@+id/textView77" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignLeft="@+id/ettesttube" 
      android:layout_below="@+id/input_order" 
      android:layout_marginTop="5dp" 
      android:text="Tube Count" 
      android:textSize="15dp" /> 

     <ImageButton 
      android:id="@+id/ibtdown" 
      android:layout_width="40dp" 
      android:layout_height="40dp" 
      android:layout_alignBottom="@+id/ettesttube" 
      android:layout_alignLeft="@+id/input_order" 
      android:layout_alignTop="@+id/ettesttube" 
      android:layout_below="@+id/textView77" 
      android:background="@drawable/down" /> 

     <EditText 
      android:id="@+id/ettesttube" 
      android:layout_width="80dp" 
      android:layout_height="40dp" 
      android:layout_below="@+id/textView77" 
      android:layout_marginLeft="5dp" 
      android:layout_marginRight="5dp" 
      android:layout_marginTop="3dp" 
      android:layout_toRightOf="@+id/ibtdown" 
      android:background="@drawable/squarecorner" 
      android:ems="10" 
      android:inputType="number" 
      android:text="1" > 
     </EditText> 

     <ImageButton 
      android:id="@+id/ibtup" 
      android:layout_width="40dp" 
      android:layout_height="40dp" 
      android:layout_alignBottom="@+id/ettesttube" 
      android:layout_alignTop="@+id/ettesttube" 
      android:layout_toRightOf="@+id/ettesttube" 
      android:background="@drawable/up" /> 


     <RelativeLayout 
      android:id="@+id/rellist" 
      android:layout_width="fill_parent" 
      android:layout_height="200dp" 
      android:layout_below="@+id/textView6" 
      android:layout_marginBottom="6dp" 
      android:layout_marginLeft="35dp" 
      android:layout_marginRight="40dp" 
      android:background="@drawable/roundcorner" > 

      <ListView 
       android:id="@+id/listView1" 
       android:layout_width="fill_parent" 
       android:layout_height="200dp" 
       android:layout_weight="1" 
       android:fadeScrollbars="false" 
       android:fastScrollEnabled="true" 
       android:longClickable="true" > 
      </ListView> 
     </RelativeLayout> 

     <Button 
      android:id="@+id/button_submit" 
      android:layout_width="80dp" 
      android:layout_height="35dp" 
      android:layout_alignLeft="@+id/rellist" 
      android:layout_below="@+id/rellist" 
      android:layout_marginTop="6dp" 
      android:background="@drawable/btn_bg" 
      android:text="Submit" /> 

     <Button 
      android:id="@+id/button_no_order" 
      android:layout_width="80dp" 
      android:layout_height="35dp" 
      android:layout_alignBottom="@+id/button_clear" 
      android:layout_alignTop="@+id/button_clear" 
      android:layout_below="@+id/rellist" 
      android:layout_gravity="center" 
      android:layout_toRightOf="@+id/button_clear" 
      android:background="@drawable/btn_bg" 
      android:text="No Order" /> 

     <View 
      android:id="@+id/blank" 
      android:layout_width="fill_parent" 
      android:layout_height="30dp" 
      android:layout_below="@+id/button_clear" /> 

     <ImageView 
      android:id="@+id/showImg" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginRight="35dp" 
      android:src="@drawable/abc_ab_bottom_solid_dark_holo" 
      android:visibility="gone" /> 
    </RelativeLayout> 
</ScrollView> 
</RelativeLayout> 

Проблема заключается в том, что ListView не прокрутке

Я попытался это:

public class Utility { 
public static void setListViewHeightBasedOnChildren(ListView listView) { 
    ListAdapter listAdapter = listView.getAdapter(); 
    if (listAdapter == null) { 
     // pre-condition 
     return; 
    } 

    int totalHeight = 0; 
    for (int i = 0; i < listAdapter.getCount(); i++) { 
     View listItem = listAdapter.getView(i, null, listView); 
     listItem.measure(0, 0); 
     totalHeight += listItem.getMeasuredHeight(); 
    } 

    ViewGroup.LayoutParams params = listView.getLayoutParams(); 
    params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1)); 
    listView.setLayoutParams(params); 
} 
}  

В классе деятельности я написал это после установки адаптера:

Utility.setListViewHeightBasedOnChildren(list); 

Но все же список не прокручивается.

Спасибо!

+1

listview под scrollview никогда не работает. –

+0

опубликуйте строку списка xml –

+0

ListView внутри ScrollView = scrollception, свиток внутри прокрутки. Подумайте об этом, на самом деле это не имеет смысла ... – 2Dee

ответ

1
ListView listView; 
listView.setOnTouchListener(new ListView.OnTouchListener() { 
@Override 
public boolean onTouch(View v, MotionEvent event) { 
if (event.getAction() == MotionEvent.ACTION_MOVE) 
{ 
listView.scrollBy(0, 1); 
} 
return false; 
} 
}); 

раз проверить этот код

ListView lv = (ListView)findViewById(R.id.myListView); 
lv.setOnTouchListener(new ListView.OnTouchListener() { 
    @Override 
    public boolean onTouch(View v, MotionEvent event) { 
     int action = event.getAction(); 
     switch (action) { 
     case MotionEvent.ACTION_DOWN: 
      // Disallow ScrollView to intercept touch events. 
      v.getParent().requestDisallowInterceptTouchEvent(true); 
      break; 

     case MotionEvent.ACTION_UP: 
      // Allow ScrollView to intercept touch events. 
      v.getParent().requestDisallowInterceptTouchEvent(false); 
      break; 
     } 

     // Handle ListView touch events. 
     v.onTouchEvent(event); 
     return true; 
    } 
}); 

Если это полезно вам, пожалуйста, примите ответ.

+0

спасибо за ответ. Но это не работает. – Saurabh

+0

набор прокрутки для просмотра только один. – iffu

Смежные вопросы