Android,滚动所有元素:ImageViews,Textviews和ListViews

时间:2015-08-08 12:44:33

标签: android listview scrollview

Android开发新手。我有一个页面(布局),包括ImageView,TextView和ListView,我想一切都是可滚动的。所以我把Scrollview作为所有这些的容器,但它不起作用,因为ListView不能放在Scrollview中。 以下是我的想法: 1)有人说我可以将ListView标题包含在ImageView和TextView中,但事实是我的ListView可能是空的... 2)有没有其他观点,容器可以做类似的事情?例如,我不必使用ListView,因为还有另一个类似的容器......? 谢谢, 帕特里克

4 个答案:

答案 0 :(得分:0)

ScrollView是一个FrameLayout,意味着您应该在其中放置一个包含要滚动的全部内容的子项;这个子本身可能是一个具有复杂对象层次结构的布局管理器。尝试这样的事情:放置一个包含组件的RelativeLayout容器,并将RelativeLayout放在ScrollView中。

<ScrollView android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">

    <RelativeLayout>
     ...
     ...
     your components
     ...
    </RelativeLayout>
</ScrollView>

答案 1 :(得分:0)

输入您的代码格式:

 <ScrollView
    android:id="@+id/scrollView1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true" >

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <ListView
            android:id="@+id/listView1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_centerHorizontal="true"
            android:layout_marginBottom="123dp" >
        </ListView>

        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="71dp"
            android:layout_marginTop="48dp"
            android:text="Large Text"
            android:textAppearance="?android:attr/textAppearanceLarge" />
    </RelativeLayout>
</ScrollView>

答案 2 :(得分:0)

您可以将textView和imageView放入单独的布局中,例如header.xml并在某些控制器类(活动或片段)中将其设置为listview标头:

    ListView list = ListView.class.cast(findViewById(R.id.list));
    View header = getLayoutInflater().inflate(R.layout.header, null, false);
    list.addHeaderView(header);
    list.setAdapter(adapter());

但是在此解决方案中,您应该在标题视图之后设置适配器

<强> UPD:

  

1)如果我的ListView为空,有没有办法处理?

您可以通过源适配器getCount()方法

了解是否为空
  

2)'Header'也可以整页滚动或堆叠在那里?

标题滚动为零列表视图项目(首先在上面)

答案 3 :(得分:0)

我的代码和工作  `public class MainActivity扩展了ListActivity的实现         SearchView.OnQueryTextListener {

String name[]={"sajad","sara","mahya","fatemeyas","majid"};
ArrayAdapter<String> adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    adapter=new ArrayAdapter<String>(this,R.layout.activity_main, name);
    setListAdapter(adapter);
}`