我正在尝试创建一个可在三种不同xml布局之间滑动的图库应用程序。应用程序看起来非常错误:
我的XML文件是:
linear.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="one"/>
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="two"
android:gravity="center"
android:layout_weight="1"/>
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="three"
android:layout_gravity="right"/>
</LinearLayout>
table.xml:
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView android:text="What is your name?"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:gravity="center"/>
<TableRow>
<TextView android:text="@string/firstname"
android:layout_height="wrap_content"
android:layout_width="wrap_content" />
<EditText android:text="John"
android:layout_height="wrap_content"
android:layout_width="wrap_content" />
</TableRow>
<TableRow>
<TextView android:text="@string/lastname"
android:layout_height="wrap_content"
android:layout_width="wrap_content" />
<EditText android:text="Poe"
android:layout_height="wrap_content"
android:layout_width="wrap_content" />
</TableRow>
</TableLayout>
and the gallery.xml:
<Gallery xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/gallery"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
我对BaseAdapter的实现:
public class LayoutsAdapter extends BaseAdapter {
private LayoutInflater mInflater;
public LayoutsAdapter(Context context) {
mInflater = LayoutInflater.from(context);
}
@Override
public int getCount() {
return 3;
}
@Override
public Object getItem(int i) {
switch (i) {
case 0:
return R.layout.linear;
case 1:
return R.layout.table;
case 2:
return R.layout.relative;
default:
return -1;
}
}
@Override
public long getItemId(int i) {
return i;
}
@Override
public View getView(int i, View convertView, ViewGroup viewGroup) {
convertView = mInflater.inflate((Integer)getItem(i), null);
return convertView;
}
}
我对android很新,所以我期待着你的帮助。
答案 0 :(得分:1)
我认为你应该使用ViewPager。在ViewPager上查看以下信息:
http://thepseudocoder.wordpress.com/2011/10/05/android-page-swiping-using-viewpager/
另请考虑您可能希望将碎片与ViewPager结合使用。
但我认为ViewPager正是您所寻找的。实际上它比做得更顺畅 你拥有布局的东西。
答案 1 :(得分:1)
我建议你使用Jake Whartons ViewPageIndicator(或者只是普通的ViewPager):
为每个布局创建一个Fragment
,并使用片段中的onCreateView()
方法将布局设置为片段:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.layout, container, false);
}
现在创建一个FragmentPagerAdapter
应该有一个名为getItem()
的方法。切换位置并将其设置为碎片:
@Override public Fragment getItem ( int position){
switch (position) {
case 0:
TestFragment fragment = new TestFragment();
return fragment;
case 1:
TestFragment2 fragment2 = new TestFragment2();
return fragment2;
}
return defaultFragment fragment3 = new defaultFragment();
return fragment3;
}
现在你应该可以轻松地滑动到你的布局(片段)
答案 2 :(得分:0)