我正在开发一个使用片段和ViewPager
的应用程序,允许用户根据Camera2
'在googlesamples
'之间使用Fragment
API在包含预览的Fragement之间滑动。来自Github的Camera2Video示例。这就是问题发生的地方。
相机的此代码实现在很大程度上依赖于原生ViewPager
而android.support.v4.app.Fragment
似乎需要使用Fragment
似乎我需要一种方法来实现这两者{ {1}}在同一个项目中。在本文中,我确实知道android.support.v13.app.FragmentCompat
的存在,但是,这似乎并没有提供函数/方法和功能来普遍使用我正在使用的代码实现。
基本片段文件
我的基本Fragment
文件遵循此设计。
public class FriendsFragment extends Fragment {
/**
* Recommended empty Constructor
*/
public FriendsFragment() { }
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// Inflate and return the views from XML layout, don't attach to container at this time
return (inflater.inflate(R.layout.fragment_feed, container, false));
}
/**
* Instantiates and returns a new FriendsFragment
* @return FriendsFragment instance
*/
public static FriendsFragment newInstance() {
return (new FriendsFragment());
}
}
获取碎片
这个基本代码是我在Fragments
之间处理ViewPager
之间切换的方式。
public class MainActivity extends FragmentActivity {
private final int NUMBER_OF_PAGES = 2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ViewPager pager = (ViewPager) findViewById(R.id.viewPager);
pager.setAdapter(new SwipePagerAdapter(getSupportFragmentManager()));
}
private class SwipePagerAdapter extends FragmentPagerAdapter {
public SwipePagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
switch(position) {
case 0:
return FirstFragment.newInstance();
case 1:
return SecondFragment.newInstance();
default:
return SecondFragment.newInstance();
}
}
/**
* Returns the number of Fragment pages available to the {@link FragmentPagerAdapter}
* @return The number of pages
*/
@Override
public int getCount() {
return NUMBER_OF_PAGES;
}
}
}