我看到很多与页面卷曲有关的github。我在下面提到了它:
但是一切都与Images有关。它不适合我。我需要在Action栏标签中实现页面卷曲。
对于例如:我在动作栏标签中发布了下面的示例图片,用于页面卷曲。
下面我发布了操作栏标签的代码:
MainActivity.java:
public class MainActivity extends FragmentActivity implements
ActionBar.TabListener {
private ViewPager viewPager;
private TabsPagerAdapter mAdapter;
private ActionBar actionBar;
private MenuItem menuItem;
// Tab titles
private String[] tabs = { "Top Rated", "Games", "Movies" };
@SuppressLint("NewApi")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
viewPager = (ViewPager) findViewById(R.id.pager);
actionBar = getActionBar();
mAdapter = new TabsPagerAdapter(getSupportFragmentManager());
viewPager.setAdapter(mAdapter);
actionBar.setHomeButtonEnabled(false);
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_HOME
| ActionBar.DISPLAY_SHOW_TITLE | ActionBar.DISPLAY_SHOW_CUSTOM);
// Adding Tabs
for (String tab_name : tabs) {
actionBar.addTab(actionBar.newTab().setText(tab_name)
.setTabListener(this));
}
viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageSelected(int position) {
// on changing the page
// make respected tab selected
actionBar.setSelectedNavigationItem(position);
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
@Override
public void onPageScrollStateChanged(int arg0) {
}
});
}
@Override
public void onTabReselected(Tab tab, FragmentTransaction ft) {
}
@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
// on tab selected
// show respected fragment view
viewPager.setCurrentItem(tab.getPosition());
}
@Override
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
}
}
activity_main.xml中:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</android.support.v4.view.ViewPager>
TopRatedFragment.java:
public class TopRatedFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_top_rated, container, false);
return rootView;
}
}
fragment_top_rated.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#fa6a6a"
android:orientation="vertical" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:gravity="center"
android:text="Design Top Rated Screen"
android:textSize="20dp" />
</RelativeLayout>
已编辑:我已在Action bar tabs中尝试过了。但它在“活动”中工作而非“片段”(操作栏标签)。
如果我在操作栏选项卡中获得了一些教程或github或一些示例或任何其他与实现页面卷曲相关的建议。这对我有帮助。谢谢。
答案 0 :(得分:1)
如果您可以将想要页面卷曲的内容添加到View实例中,那么如果将视图渲染到位图上,则可能会使用任何使用Bitmap实例的卷曲效果。可以使用这样的方法:
public Bitmap renderViewAsBitmap( View view ) {
view.setDrawingCacheEnabled( true );
view.buildDrawingCache();
return view.getDrawingCache();
}
或者,如果您想在卷曲效果之前对图像进行更多操作:
public Bitmap renderViewAsBitmap( View view, int width, int height ) {
Bitmap bitmap = Bitmap.createBitmap( width, height, Bitmap.Config.ARGB_8888 );
Canvas canvas = new Canvas( bitmap );
view.draw( canvas );
return bitmap;
}
布局可以
我会尝试编写一个测试用例,使用操作栏标签作为参考,并使用更多示例代码编辑此答案。
答案 1 :(得分:0)
股票android选项卡属于Actionbar。它们呈现在主片段(Actionbar下方的片段)之外。由于您在片段中应用了卷曲效果,因此您永远不会在标签中看到它。
我建议您使用模拟操作栏标签相同行为的库(例如PageSlidingTabStrip),这会强制您在视图中添加标签。使用这些自定义库在视图中添加选项卡后,尝试应用卷曲效果。