我所看到的一切都是矫枉过正的。我正在寻找一种让我的应用程序的某些部分在向左/向右滑动时滚动浏览几个文本片段的方法。想象一下您滚动浏览的图库,但每个图像库只有一行文字而不是图像。谢谢!
答案 0 :(得分:2)
您可以查看我的其他帖子以获取更详细的答案。我的其他帖子中的解释非常简单。
How to properly use fragments with ViewPager?
Multiple ViewPagers in on Activity
How to swipe xml layouts using ViewPager
这些是您可以找到帮助的几个例子。希望这有助于.. :))
如果这些答案仍有问题,请看一下这个简单的例子:
请按照以下简单步骤操作:
第1步:为您的视图寻呼机创建布局:(activity_main.xml)
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity"
android:background="#333333">
<android.support.v4.view.ViewPager
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</RelativeLayout>
第2步:创建另一个布局来保存textview项目:(items.xml)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/text_view1"
android:layout_width="fill_parent"
android:layout_height="40dp"
android:background="#94999F"
android:gravity="left|center_vertical"
android:paddingLeft="10dp"
android:text="Hello"
android:textColor="#FFFFFF"
android:textSize="17sp"
android:textStyle="bold"
android:visibility="visible" />
</LinearLayout>
第3步:在您的主活动中为您的适配器创建一个类,或者您可以为适配器创建一个单独的类。这只是同一个类中的一个适配器。这是完整的代码:
public class MainActivity extends Activity {
ViewPager mViewPager;
String[] items = { "one", "two", "three", "four", "five" };
ArrayList<String> mArrayList = new ArrayList<String>();
Context context;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
context = this;
/*for (String s : items) {
mArrayList.add(s);
}*/
for(int i = 0;i<100;i++){
mArrayList.add("Item " + i);
}
mViewPager = (ViewPager) findViewById(R.id.pager);
MyAdapter mAdapter = new MyAdapter(context, mArrayList);
mViewPager.setAdapter(mAdapter);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
/*Here's the adapter*/
private class MyAdapter extends PagerAdapter {
ArrayList<String> someList = new ArrayList<String>();
Context context;
public MyAdapter(Context context, ArrayList<String> newsomeList) {
super();
this.context = context;
this.someList = newsomeList;
}
@SuppressLint("NewApi")
@Override
public void finishUpdate(ViewGroup container) {
// TODO Auto-generated method stub
super.finishUpdate(container);
}
@Override
public int getCount() {
return someList.size();
}
@Override
public boolean isViewFromObject(View collection, Object object) {
return collection == ((View) object);
}
@Override
public Object instantiateItem(View collection, int position) {
// Inflating layout
LayoutInflater inflater = (LayoutInflater) collection.getContext()
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
// Setting view you want to display as a row element
View view = inflater.inflate(R.layout.items, null);
TextView itemText = (TextView) view.findViewById(R.id.text_view1);
// Getting reference for text view and inflate the view for Answers
try {
itemText.setText(someList.get(position));
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
((ViewPager) collection).addView(view, 0);
return view;
}
@Override
public void destroyItem(View collection, int position, Object view) {
((ViewPager) collection).removeView((View) view);
}
}
}
你需要......:)
希望这会对你有所帮助..它是你需要的一个非常简单的例子。祝你好运.. :)
答案 1 :(得分:1)
答案 2 :(得分:0)
您可以使用HorizontalScrollView
。一个例子是here。您可以使用TextView
代替按钮,为您提供服务。
否则您也可以使用ViewPager
。其他人已经给你教程就是这样。但我认为,为了达到你的目的HorizontalScrollView
是必要的。