xmlファイルでlistviewの代わりに線形レイアウトを使用します。 これはあなたのXMLファイルです。
<?xml version="1.0" encoding="utf-8"?>
<ScrollView android:id="@+id/scr" android:layout_height="fill_parent"
android:layout_width="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout android:layout_width="fill_parent"
android:id="@+id/r2" android:orientation="vertical"
android:layout_height="fill_parent" android:paddingTop="100dip"
android:paddingBottom="100dip">
<LinearLayout android:layout_width="fill_parent"
android:id="@+id/l1" android:orientation="vertical"
android:layout_height="wrap_content" android:layout_marginTop="10dip"
android:background="#00B2EE">
</LinearLayout>
<LinearLayout android:layout_width="fill_parent"
android:id="@+id/l2" android:orientation="vertical"
android:layout_height="wrap_content" android:layout_marginTop="10dip"
android:background="#00EE76">
</LinearLayout>
<LinearLayout android:layout_width="fill_parent"
android:id="@+id/l3" android:orientation="vertical"
android:layout_height="wrap_content" android:layout_marginTop="10dip"
android:background="#7171C6">
</LinearLayout>
</LinearLayout>
</ScrollView>
リストを膨らませる別のxmlを入れてください。
これは主なアクティビティクラスです。
package com.list.add;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.ScrollView;
import android.widget.TextView;
public class NewlistActivity extends Activity {
/** Called when the activity is first created. */
LinearLayout l1,l2,l3;
ScrollView scrollView;
ViewGroup contentView;
List<String> list = new ArrayList<String>();
List<String> list1 = new ArrayList<String>();
List<String> list2 = new ArrayList<String>();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
l1 = (LinearLayout) findViewById(R.id.l1);
l2 = (LinearLayout) findViewById(R.id.l2);
l3 = (LinearLayout) findViewById(R.id.l3);
scrollView = (ScrollView) findViewById(R.id.scr);
contentView = (ViewGroup) findViewById(R.id.r2);
scrollView.setOnTouchListener(new ScrollPager(scrollView, contentView));
scrollView.post(new Runnable() {
public void run() {
scrollView.scrollTo(0, contentView.getPaddingTop());
}
});
list.add("Parth");
list.add("Chirag");
list.add("Chirag");
list.add("Chirag");
list.add("Chirag");
list.add("Chirag");
list.add("Parth");
list.add("Chirag");
list.add("Chirag");
list.add("Chirag");
list.add("Chirag");
list.add("Chirag");
list.add("Chirag");
list.add("Chirag");
list.add("Chirag");
list.add("Chirag");
list.add("Shah");
list.add("Parth");
list.add("Chirag");
list.add("Chirag");
list.add("Chirag");
list.add("Chirag");
list.add("Chirag");
list.add("Parth");
list.add("Chirag");
list.add("Chirag");
list.add("Chirag");
list.add("Chirag");
list.add("Chirag");
list.add("Chirag");
list.add("Chirag");
list.add("Chirag");
list.add("Chirag");
list.add("Shah");
list1.add("Parth");
list1.add("Parth");
list1.add("Parth");
list1.add("Parth");
list1.add("Parth");
list1.add("Parth");
list2.add("Kalpesh");
list2.add("Kalpesh");
list2.add("Kalpesh");
list2.add("Kalpesh");
list2.add("Kalpesh");
list2.add("Kalpesh");
list2.add("Kalpesh");
System.out.println(list);
System.out.println(list1);
System.out.println(list2);
for (int i=0; i<list.size(); i++)
{
LayoutInflater inflater = getLayoutInflater();
View vi = inflater.inflate(R.layout.raw, null);
TextView tv = (TextView) vi.findViewById(R.id.textView1);
tv.setText(list.get(i));
l1.addView(vi);
}
for (int i=0; i<list1.size(); i++)
{
LayoutInflater inflater = getLayoutInflater();
View vi = inflater.inflate(R.layout.raw, null);
TextView tv = (TextView) vi.findViewById(R.id.textView1);
tv.setText(list1.get(i));
l2.addView(vi);
}
for (int i=0; i<list2.size(); i++)
{
LayoutInflater inflater = getLayoutInflater();
View vi = inflater.inflate(R.layout.raw, null);
TextView tv = (TextView) vi.findViewById(R.id.textView1);
tv.setText(list2.get(i));
l3.addView(vi);
}
}
}
と、このような1つのスクロールクラスを作る:
public class ScrollPager implements OnTouchListener
public ScrollPager(ScrollView aScrollView, ViewGroup aContentView)
{
mScrollView = aScrollView;
mContentView = aContentView;
scroller = new Scroller(mScrollView.getContext(), new OvershootInterpolator());
task = new Runnable()
{
public void run()
{
scroller.computeScrollOffset();
mScrollView.scrollTo(0, scroller.getCurrY());
if (!scroller.isFinished())
{
mScrollView.post(this);
}
}
};
}
public boolean onTouch(View v, MotionEvent event)
{
// Stop scrolling calculation.
scroller.forceFinished(true);
// Stop scrolling animation.
mScrollView.removeCallbacks(task);
if (event.getAction() == MotionEvent.ACTION_UP)
{
これは私のために働きます。私たちはそれを明示的に行う必要があるので、それはほとんどのメモリ効率的ではないかもしれないと理解していますが、私は5つ以上の項目を使用していないので、私は良いです。ありがとう – lazyguy