Android水平滚动列表

时间:2011-04-04 10:38:06

标签: android listview gallery horizontallist

  

可能重复:
  Horizontal ListView in Android?

我想要像Gallery一样的水平滚动。我没有使用Gallery因为它的中心被锁定了。

这里有人可以帮我解决这个问题吗?所以我可以有水平滚动列表吗?

我认为最好的例子是脉冲新闻阅读器: - https://market.android.com/details?id=com.alphonso.pulse

谢谢:)

6 个答案:

答案 0 :(得分:11)

http://developer.android.com/reference/android/widget/HorizontalScrollView.html

编辑:好的,在发现我不需要做一个RTFM帖子后我搜索了一下这个在此之前就被问过:

Horizontal ListView in Android?

已经在这里实施了:

http://dev-smart.com/?p=34

答案 1 :(得分:4)

我已经在ScrollView和Horizo​​ntalScrollView的帮助下创建了一个视图,为您提供了至少一个开始。以下是该代码的XML:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="fill_parent"
    android:layout_height="wrap_content">
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical" android:layout_width="fill_parent"
        android:layout_height="wrap_content" android:padding="5dp">

        <HorizontalScrollView android:layout_width="fill_parent"
            android:layout_height="fill_parent">
            <LinearLayout android:id="@+id/a" android:layout_width="fill_parent"
                android:layout_height="wrap_content" android:padding="5dp"
                android:layout_weight="1">
            </LinearLayout>
        </HorizontalScrollView>

        <HorizontalScrollView android:layout_width="fill_parent"
            android:layout_height="fill_parent">
            <LinearLayout android:id="@+id/b" android:layout_width="fill_parent"
                android:layout_height="wrap_content" android:padding="5dp"
                android:layout_weight="1">
            </LinearLayout>
        </HorizontalScrollView>

        <HorizontalScrollView android:layout_width="fill_parent"
            android:layout_height="fill_parent">
            <LinearLayout android:id="@+id/c" android:layout_width="fill_parent"
                android:layout_height="wrap_content" android:padding="5dp"
                android:layout_weight="1">
            </LinearLayout>
        </HorizontalScrollView>

        <HorizontalScrollView android:layout_width="fill_parent"
            android:layout_height="fill_parent">
            <LinearLayout android:id="@+id/d" android:layout_width="fill_parent"
                android:layout_height="wrap_content" android:padding="5dp"
                android:layout_weight="1">
            </LinearLayout>
        </HorizontalScrollView>

    </LinearLayout>
</ScrollView>

Plus java code:

public class SampleActivity extends Activity {

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        LinearLayout linearLayout = (LinearLayout) findViewById(R.id.a);
        LinearLayout linearLayout1 = (LinearLayout) findViewById(R.id.b);
        LinearLayout linearLayout2 = (LinearLayout) findViewById(R.id.c);
        LinearLayout linearLayout3 = (LinearLayout) findViewById(R.id.d);

        for (int i = 0; i < 10; i++) {

            ImageView imageView = new ImageView(this);
            imageView.setImageResource(R.drawable.sample_0);
            linearLayout.addView(imageView);

            ImageView imageView1 = new ImageView(this);
            imageView1.setImageResource(R.drawable.sample_1);
            linearLayout1.addView(imageView1);

            ImageView imageView2 = new ImageView(this);
            imageView2.setImageResource(R.drawable.sample_2);
            linearLayout2.addView(imageView2);

            ImageView imageView3 = new ImageView(this);
            imageView3.setImageResource(R.drawable.sample_3);
            linearLayout3.addView(imageView3);
        }
    }

}

我尝试上传一些截图但我猜它被我的网络防火墙阻止了。所以稍后会上传。

希望这会有所帮助!!

答案 2 :(得分:2)

 <HorizontalScrollView>
   ....Horizontal LinearLayout here....
</HorizontalScrollView>

在Horizo​​ntal LinearLayout中,您可以添加所有视图...

答案 3 :(得分:1)

<HorizontalScrollView>
....your layout here....
</HorizontalScrollView>

答案 4 :(得分:1)

下载Pulse apk,使用dex2jar + JD-GUI进行反编译,看看他们是如何做到的!

摘录:

package com.alphonso.pulse.views;

import android.content.Context;
import android.content.res.Resources;
import android.util.AttributeSet;
import android.util.DisplayMetrics;
import android.widget.Gallery;

public class HorizontalTileView extends Gallery
{
... etc

一位善良的绅士/女士以后可以用这个给我们写一个关于实施的教程吗? : - )

答案 5 :(得分:0)

您可以更改图库中的android:gravity吗?