我想要像Gallery一样的水平滚动。我没有使用Gallery因为它的中心被锁定了。
这里有人可以帮我解决这个问题吗?所以我可以有水平滚动列表吗?
我认为最好的例子是脉冲新闻阅读器: - https://market.android.com/details?id=com.alphonso.pulse
谢谢:)
答案 0 :(得分:11)
http://developer.android.com/reference/android/widget/HorizontalScrollView.html?
编辑:好的,在发现我不需要做一个RTFM帖子后我搜索了一下这个在此之前就被问过:
Horizontal ListView in Android?
已经在这里实施了:
答案 1 :(得分:4)
我已经在ScrollView和HorizontalScrollView的帮助下创建了一个视图,为您提供了至少一个开始。以下是该代码的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>
在Horizontal 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
吗?