我是Android的新手,有太多的未知,我甚至不知道寻找解决方案的方向..我希望有经验的开发人员可以启发我...
我的UI设计与普通的Android应用程序布局完全不同,到目前为止我看到的大多数都使用了Tabs或左上角控件按钮..
我的主要活动是1)全屏没有ActionBar 2)有一个固定的“控制面板”层占据屏幕的下半部分3)全屏ViewPager(包含三个页面,可以向左和向右滑动)下面“控制面板”层。
我能够实现1& 2或1& 3但不是全部。我认为主要的问题是在同一个屏幕上将控制面板添加到ViewPager的顶部。
我试图将ViewPager和“控制面板”作为MainActivity布局中的两个片段..它不起作用......下面是布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.example.MainActivity">
<fragment
android:layout_width="fill_parent"
android:layout_height="fill_parent"
tools:layout="@layout/fragment_pager"/>
<fragment android:name="com.example.MainFragment"
android:layout_width="fill_parent"
android:layout_height="200dip"
android:layout_gravity="bottom"
tools:layout="@layout/fragment_main"/>
</LinearLayout>
如果您需要更多信息,请同时附上我的MainActivity
public class MainActivity extends FragmentActivity {
static final int NUM_ITEMS = 3;
private FragmentPagerAdapter mAdapter;
private ViewPager mPager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ActionBar actionBar = getActionBar();
actionBar.hide();
setContentView(R.layout.activity_main);
mAdapter = new DashboardAdapter(getSupportFragmentManager());
mPager = (ViewPager)findViewById(R.id.pager);
mPager.setAdapter(mAdapter);
mPager.setCurrentItem(1);
}
public static class DashboardAdapter extends FragmentPagerAdapter {
public DashboardAdapter(FragmentManager fm) {
super(fm);
}
@Override
public int getCount() {
return NUM_ITEMS;
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
return new FirstFragment();
case 1:
return new SecondFragment();
case 2:
return new ThirdFragment();
default:
return null;
}
}
}
}
我有错误膨胀类片段,所以当我创建片段时可能会发生
inflater.inflate(R.layout.first_fragment, container, false);
因为“控制面板”在ViewPager之外,所以视图不能膨胀......那么这样做的正确方法是什么?
答案 0 :(得分:0)
使用RelativeLayout
作为MainActivity
。
ViewPager
应该是match_parent
的第一个孩子。
您的控制面板可以使用layout_alignParentBottom="true"
在底部对齐。这也将使其位于ViewPager
。