【问题标题】:Implement openAphid Flip animation(flipboard) for scrollable grid screen实现可滚动网格屏幕的openAphid Flip动画(flipboard)
【发布时间】:2016-05-17 19:32:52
【问题描述】:

大家好,我在实现翻板应用程序页面折叠动画时遇到了问题。我为此使用 openaphid/android-flip 库。我能够为使用gridview显示项目列表的屏幕成功实现动画,该库显示仅具有适配器的屏幕的折叠动画,显示适配器的单个项目的折叠动画。现在我想为单个屏幕显示这个动画片段或活动,这是可能的,因为这个动画是在“Havells mCatalogue 应用程序”中实现的。如果有人使用过这个库动画并且知道如何为在 gridview 中显示多个项目的屏幕实现动画,请让我知道如何处理这个东西。我正在添加照片以从应用程序中参考此动画。 这是动画库的链接

https://github.com/openaphid/android-flip]2

【问题讨论】:

    标签: android animation


    【解决方案1】:

    好吧,我能够通过扩展一个片段来实现所需的功能,该片段显示一个带有适配器的网格视图,该适配器位于一个扩展基本适配器的适配器类的 getView 方法中。但由于翻转无法翻转具有网格视图的该片段的下一个项目,我需要采用不同的技术。即我必须创建硬编码屏幕并为适配器定义硬编码计数,我用来将其设置为翻转视图控制器和内部获取此适配器的视图方法,具体取决于我加载不同 xml 并相应地实例化视图的位置。我知道这是一种非常糟糕的技术并且详尽无遗,但目前这是我找到的唯一解决方案。

    这是我的代码

    FragmentLoaderAdapterFragment.java

    public class FragmentLoaderAdapterFragment extends Fragment {
    
    private FlipViewController flipView;
    
    public FragmentLoaderAdapterFragment() {
    }
    
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        flipView = new FlipViewController(inflater.getContext());
        flipView.setAdapter(new SingleFragmentDisplayAdapter());
    
        return flipView;
    
    }
    
    @Override
    public void onResume() {
        super.onResume();
        flipView.onResume();
    }
    
    @Override
    public void onPause() {
        super.onPause();
        flipView.onPause();
    }
    
    @Override
    public void onDestroy() {
        super.onDestroy();
        flipView = null;
    }
    
    private class SingleFragmentDisplayAdapter extends BaseAdapter {
    
    
        public SingleFragmentDisplayAdapter() {
        }
    
        @Override
        public int getCount() {
            return 2;
        }
    
        @Override
        public Object getItem(int i) {
            return i;
        }
    
        @Override
        public long getItemId(int i) {
            return i;
        }
    
        @Override
        public View getView(int i, View view, ViewGroup viewGroup) {
            if (i==0){
                view = View.inflate(getActivity(),R.layout.fragment_consumer_products,null);
                LinearLayout cableLinearLayout = (LinearLayout) view.findViewById(R.id.cablesLayout);
                cableLinearLayout.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                        Toast.makeText(getActivity(), "Clicked", Toast.LENGTH_SHORT).show();
                    }
                });
                return view;
            } if (i==1){
                view = View.inflate(getActivity(),R.layout.fragment_consumer_products2,null);
                LinearLayout cableLinearLayout = (LinearLayout) view.findViewById(R.id.cablesLayout);
                cableLinearLayout.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                        Toast.makeText(getActivity(), "Clicked", Toast.LENGTH_SHORT).show();
                    }
                });
                return view;
            } else {
                return null;
            }
        }
    
    }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-02
      • 1970-01-01
      • 2023-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多