如何在android中实现修复栏布局
我想创建如下布局:如何在android中实现修复栏布局,android,Android,我想创建如下布局: <RelativeLayout> <RelativeLayout id="fixed"> </RelativeLayout> <ScrollView> <RelativeLayout> <Button... <ListView.... <Button... <
<RelativeLayout>
<RelativeLayout id="fixed">
</RelativeLayout>
<ScrollView>
<RelativeLayout>
<Button...
<ListView....
<Button...
</RelatievLayout>
</ScrollView>
</RelativeLayout>
我认为滚动视图
是必要的,可能是这样的:
<RelativeLayout>
<RelativeLayout id="fixed">
</RelativeLayout>
<ScrollView>
<RelativeLayout>
<Button...
<ListView....
<Button...
</RelatievLayout>
</ScrollView>
</RelativeLayout>
第一个想法(不推荐):在滚动视图
中添加列表视图
是个坏主意,因为默认情况下这两个视图都是可滚动的。您可以使用线性布局
而不是列表视图
,并为项目创建自定义onClickListener
<Scrollview>
<Button.../>
<LinearLayout>
<items.../>
</LinearLayout>
</Scrollview>
第二个想法(推荐)是使用一个ListView
并创建一个自定义适配器,扩展BaseAdapter
为每行返回视图并保存数据。这意味着将按钮和项目添加到列表视图中
,并创建一个自定义的OnClickListener
和适配器来容纳您的模型。这是我用过的方法,我会用这种方法再做一次
如果要安装适配器,则需要覆盖:
getViewTypeCount
-不同行布局的类型数
getItemViewType
行的类型
getView
返回某个位置的视图,在这里您需要放大布局并设置数据
如何创建具有不同行类型的列表视图。第一个想法(不推荐):在滚动视图
中添加列表视图
是个坏主意,因为默认情况下两者都是可滚动的。您可以使用线性布局
而不是列表视图
,并为项目创建自定义onClickListener
<Scrollview>
<Button.../>
<LinearLayout>
<items.../>
</LinearLayout>
</Scrollview>
第二个想法(推荐)是使用一个ListView
并创建一个自定义适配器,扩展BaseAdapter
为每行返回视图并保存数据。这意味着将按钮和项目添加到列表视图中
,并创建一个自定义的OnClickListener
和适配器来容纳您的模型。这是我用过的方法,我会用这种方法再做一次
如果要安装适配器,则需要覆盖:
getViewTypeCount
-不同行布局的类型数
getItemViewType
行的类型
getView
返回某个位置的视图,在这里您需要放大布局并设置数据
如何使用不同类型的行创建ListView。这是xml代码
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<ScrollView
android:id="@+id/scrollView1"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<LinearLayout android:id="@+id/rlt"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
</LinearLayout>
</ScrollView>
</RelativeLayout>
Java代码
LinearLayout llt = (LinearLayout)findViewById(R.id.rlt);
for(int i=0;i<12;i++)
{
final int k =i;
LinearLayout ll = new LinearLayout(this);
ll.setId(i);
ll.setOrientation(LinearLayout.VERTICAL);
TextView tv = new TextView(this);
tv.setText(" name:"+i);
ll.addView(tv);
ll.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
System.out.println("This is the printed text no"+k);
}
});
//ll.setBackgroundColor(Color.BLACK);
llt.addView(ll);
}
LinearLayout llt=(LinearLayout)findViewById(R.id.rlt);
对于(inti=0;i这是xml代码
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<ScrollView
android:id="@+id/scrollView1"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<LinearLayout android:id="@+id/rlt"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
</LinearLayout>
</ScrollView>
</RelativeLayout>
Java代码
LinearLayout llt = (LinearLayout)findViewById(R.id.rlt);
for(int i=0;i<12;i++)
{
final int k =i;
LinearLayout ll = new LinearLayout(this);
ll.setId(i);
ll.setOrientation(LinearLayout.VERTICAL);
TextView tv = new TextView(this);
tv.setText(" name:"+i);
ll.addView(tv);
ll.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
System.out.println("This is the printed text no"+k);
}
});
//ll.setBackgroundColor(Color.BLACK);
llt.addView(ll);
}
LinearLayout llt=(LinearLayout)findViewById(R.id.rlt);
对于(int i=0;i在listview中有什么?从服务器上搜索的数据列表。那么为什么不使用linerlayout而不是listview?你的意思是添加一个LinearLayout
并将listview
放在里面?如果没有,要显示的数据是ArrayList
,如果不需要,使用LinearLayout
o使用ListView然后你需要将文本视图添加到Linearlayout并打印其中的数据。但是为什么你不想使用ListView?ListView中有什么?从服务器搜索的数据列表。那么为什么不使用linerlayout而不是ListView?你的意思是添加一个Linearlayout
并将ListView
放在其中?如果没有,则将数据添加到b显示的是一个ArrayList
,使用LinearLayout
是否合适?如果不想使用ListView,则需要将textview添加到LinearLayout并打印其中的数据。但为什么不想使用ListView呢?事实上,我使用的是第二种方法,我有自己的适配器扩展ArrayAdapter
,我只覆盖对于getView
方法,我从不使用getViewTypeCount
和getItemViewType
,我会尝试一下。但是,在我的示例中,按钮1
和按钮2
与列表视图
没有任何关系,所以将它们添加到自定义适配器中是一个好主意?这样按钮就在滚动条中了是的。如果适配器处理正确,混合不同的内容是可以的。事实上,我使用的是第二种方法,我有自己的适配器扩展ArrayAdapter
,我只覆盖getView
方法,我从不使用getViewTypeCount
和getItemViewType
,我会尝试一下。但是,按钮n1
和按钮n2
在我的示例中与列表视图
无关,因此将它们添加到自定义适配器中是一个好主意?这样按钮就位于可滚动的are中。如果适配器处理正确,混合不同的内容是可以的。