2012-03-21 322 views
0

我必須執行下面的屏幕。它在480×800像素的屏幕上看起來非常好。由於屏幕尺寸不足,在低分辨率屏幕上,結果滾動顯示非常小的實際面積,供用戶滾動瀏覽結果。滾動視圖內的列表視圖

這是實施它的最佳方式?

enter image description here

+3

**不要**把'Listview'一個'Scrollview'內。它會顯然拼寫災難..看到[this](http://groups.google.com/group/android-beginners/browse_thread/thread/2d1a4b8063b2d8f7) – Ghost 2012-03-21 12:14:12

回答

4

我總是發現試圖把一些滾動到別的,卷軸是一場噩夢,所以我可能會放ListView的水箱內的視圖(結果班加羅爾邁索爾日期)的頂部,這樣,它將滾動屏幕

listView.addHeaderView(listViewHeader); 
1

將您在紅色邊框中顯示的部分放在具有自定義列表項的ListView中。我猜你不需要滾動視圖。只需將排序和篩選按鈕設置爲父級底部即可。以及按鈕和列表項之上的部分之間的列表視圖。祝你好運。

2

他們是對的。你不應該把listview放到滾動視圖中。相反,它試試這個:

<ScrollView android:layout_width="fill_parent" android:scrollbars="vertical" 
android:layout_height="wrap_content" android:scrollbarStyle="insideOverlay"> 
<LinearLayout 
android:id="@+id/itemContainer" 
android:orientation="vertical" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
>  
<!-- YOUR ELEMENTS WILL BE PLACED HERE --> 
</LinearLayout> 
</ScrollView> 

然後你就可以在代碼中添加項目:

private LinearLayout container; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState);     
    setContentView(R.layout.YOUR_XML); 
    container = (LinearLayout)findViewById(R.id.itemContainer); 
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams( 
      LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT); 
/*CREATE YOUR ITEM*/ 
/*AND PLACE IT INTO CONTAINER*/ 
container.addView(YOUR_ITEM, layoutParams); 
} 
1

我用我自己可以作爲答案的代碼在下面的鏈接嘗試使用的ListView滾動型。它爲我工作很好。檢查一次,如果你覺得它很好,那就試一下。

How to use listview inside scroll view

1

您可以將滾動型內一個ListView。只需擴展ListView即可覆蓋onTouchEvent方法。像這樣

import android.content.Context; 
import android.util.AttributeSet; 
import android.view.MotionEvent; 

public class ChildScrollView extends android.widget.ListView { 
    private int parent_id; 

    public ChildListView(Context context) { 
     super(context); 
    } 

    public ChildListView(Context context, AttributeSet attrs) { 
     super(context, attrs); 
    } 

    public ChildListView(Context context, AttributeSet attrs, int defStyle) { 
     super(context, attrs, defStyle); 
    } 

    @Override 
    public boolean onTouchEvent(MotionEvent event){ 
     requestDisallowInterceptTouchEvent(true); 
     return super.onTouchEvent(event); 
    } 
} 
+0

它不工作.. – Raj 2013-11-20 05:26:13

1

在這個鏈接中,我編寫了我的解決方案,在滾動視圖中放置一個可滾動的列表視圖。我認爲它可以幫助你,如果我理解你的問題

ListView inside scroll view magic