2012-03-21 226 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