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