【问题标题】:Add the Page Curl in Action bar tabs在操作栏选项卡中添加页面卷曲
【发布时间】:2014-11-18 04:44:22
【问题描述】:

我在github上看到很多和page curl相关的,我在下面提到过:

  1. harism
  2. openaphid
  3. mediafire
  4. MysticTreeGames

但一切都与图像有关。它对我不起作用。我需要在操作栏选项卡中实现页面卷曲。

例如:我发布了下面的示例图片,用于操作栏选项卡中的页面卷曲。

下面我发布了操作栏标签的代码:

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 或一些示例或任何其他与在操作栏选项卡中实现页面卷曲相关的建议。那将对我有帮助。谢谢。

【问题讨论】:

    标签: android curl android-actionbar android-viewpager


    【解决方案1】:

    如果您可以将希望分页卷曲的内容获取到视图实例中,那么如果您将视图渲染到位图上,则可能会使用任何使用位图实例的卷曲效果。可以使用这样的方法:

    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;
    }
    

    布局可以

    我将尝试编写一个使用操作栏选项卡作为参考的测试用例,并将使用更多示例代码编辑此答案。

    【讨论】:

      【解决方案2】:

      库存的 android 选项卡属于操作栏。它们在主片段(Actionbar 下方的片段)之外呈现。由于您在片段中应用卷曲效果,因此您永远不会在选项卡中看到它发生。

      我建议您使用模拟动作栏标签相同行为的库(例如PageSlidingTabStrip),这会迫使您在视图中添加标签。使用这些自定义库在视图中添加选项卡后,尝试应用卷曲效果。

      【讨论】:

      • 我在 PageSlidingTabStrip 工作。但我没有在其中实现页面卷曲。好吧,让我试着告诉你。
      猜你喜欢
      • 2023-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多