• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Java CanScrollVerticallyDelegate类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Java中ru.noties.scrollable.CanScrollVerticallyDelegate的典型用法代码示例。如果您正苦于以下问题:Java CanScrollVerticallyDelegate类的具体用法?Java CanScrollVerticallyDelegate怎么用?Java CanScrollVerticallyDelegate使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



CanScrollVerticallyDelegate类属于ru.noties.scrollable包,在下文中一共展示了CanScrollVerticallyDelegate类的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: onCreateView

import ru.noties.scrollable.CanScrollVerticallyDelegate; //导入依赖的package包/类
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle sis) {
    final View view = inflater.inflate(R.layout.fragment_scrollable, parent, false);
    ScrollableLayout scrollableLayout = findView(view, R.id.scrollable_layout);
    final ViewPager header = findView(view, R.id.header_view_pager);
    final ViewPager pager = findView(view, R.id.view_pager);
    final TabsLayout tabsLayout = findView(view, R.id.tabs);

    final ViewPagerAdapter adapter = new ViewPagerAdapter(
            getChildFragmentManager(),
            getResources(),
            Arrays.asList(ListViewFragment.newInstance(0x80FF0000), RecyclerViewFragment.newInstance(0x8000FF00))
    );
    pager.setAdapter(adapter);
    tabsLayout.setViewPager(pager);
    scrollableLayout.setCanScrollVerticallyDelegate(new CanScrollVerticallyDelegate() {
        @Override
        public boolean canScrollVertically(int direction) {
            return adapter.canScrollVertically(pager.getCurrentItem(), direction);
        }
    });
    scrollableLayout.setOnScrollChangedListener(new OnScrollChangedListener() {
        @Override
        public void onScrollChanged(int y, int oldY, int maxY) {
            final float tabsTranslationY;
            if (y < maxY) {
                tabsTranslationY = .0F;
            } else {
                tabsTranslationY = y - maxY;
            }

            tabsLayout.setTranslationY(tabsTranslationY);

            header.setTranslationY(y / 2);
        }
    });

    final HeaderPagerAdapter headerPagerAdapter = new HeaderPagerAdapter(getChildFragmentManager(), 20);
    header.setAdapter(headerPagerAdapter);

    return view;
}
 
开发者ID:guoqj,项目名称:Scrollable-master,代码行数:43,代码来源:ScrollableFragment.java


示例2: onCreateDialog

import ru.noties.scrollable.CanScrollVerticallyDelegate; //导入依赖的package包/类
@Override
@NonNull
public Dialog onCreateDialog(Bundle sis) {

    final Dialog dialog = new Dialog(getActivity(), R.style.ScrollableDialogStyle);
    final LayoutInflater inflater = LayoutInflater.from(getActivity());
    final View view = inflater.inflate(R.layout.fragment_dialog, null);

    dialog.setContentView(view);

    final ScrollableLayout scrollableLayout = findView(view, R.id.scrollable_layout);
    scrollableLayout.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
        @Override
        public void onGlobalLayout() {
            final int height = scrollableLayout.getChildAt(0).getHeight();
            if (height == 0) {
                return;
            }
            ViewUtils.removeOnGlobalLayoutListener(scrollableLayout, this);
            scrollableLayout.setMaxScrollY(height);
            scrollableLayout.scrollTo(0, height / 2);
            scrollableLayout.setCloseUpAlgorithm(new DialogCloseUpAlgorithm());
        }
    });

    final View placeholder = view.findViewById(R.id.dialog_placeholder);
    final View title = view.findViewById(R.id.dialog_title);

    placeholder.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            dismiss();
        }
    });

    scrollableLayout.setDraggableView(title);
    scrollableLayout.setFriction(getArguments().getFloat(ARG_FRICTION, BuildConfig.START_FRICTION));

    final ListView listView = findView(view, R.id.list_view);
    final BaseListAdapter adapter = new BaseListAdapter(getActivity(), 50);
    listView.setAdapter(adapter);

    scrollableLayout.setCanScrollVerticallyDelegate(new CanScrollVerticallyDelegate() {
        @Override
        public boolean canScrollVertically(int direction) {
            return listView.canScrollVertically(direction);
        }
    });

    scrollableLayout.setOnScrollChangedListener(new OnScrollChangedListener() {
        @Override
        public void onScrollChanged(int y, int oldY, int maxY) {

            final float tY;
            if (y < maxY) {
                tY = .0F;
            } else {
                tY = y - maxY;
            }

            title.setTranslationY(tY);

            if (y < (maxY / 4)) {
                final float alpha = (float) y / (maxY / 4);
                scrollableLayout.getChildAt(2).setAlpha(alpha);
                scrollableLayout.getChildAt(1).setAlpha(alpha);
            } else {
                scrollableLayout.getChildAt(2).setAlpha(1.F);
                scrollableLayout.getChildAt(1).setAlpha(1.F);
            }

            if (y == 0) {
                dismiss();
            }
        }
    });

    return dialog;
}
 
开发者ID:guoqj,项目名称:Scrollable-master,代码行数:80,代码来源:ScrollableDialog.java


示例3: onCreate

import ru.noties.scrollable.CanScrollVerticallyDelegate; //导入依赖的package包/类
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Toolbar myToolbar = (Toolbar) findViewById(R.id.toolbar_tabs);
        setSupportActionBar(myToolbar);

        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_tabs_layout);
        ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(this, drawer, myToolbar,
                R.string.navigation_drawer_open, R.string.navigation_drawer_close);
        toggle.syncState();

        NavigationView navigationView = (NavigationView) findViewById(R.id.nav_tabs_view);
        navigationView.setNavigationItemSelectedListener(this);

        final TabsLayout tabs = findView(R.id.tabs);

        mScrollableLayout = findView(R.id.scrollable_layout);
        mScrollableLayout.setDraggableView(tabs);
        final ViewPager viewPager = findView(R.id.view_pager);
        final ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager(), getResources(), getFragments());
        viewPager.setAdapter(adapter);

        tabs.setViewPager(viewPager);

// Note this bit, it's very important
        mScrollableLayout.setCanScrollVerticallyDelegate(new CanScrollVerticallyDelegate() {
            @Override
            public boolean canScrollVertically(int direction) {
                return adapter.canScrollVertically(viewPager.getCurrentItem(), direction);
            }
        });
        mScrollableLayout.setOnScrollChangedListener(new OnScrollChangedListener() {
            @Override
            public void onScrollChanged(int y, int oldY, int maxY) {

                // Sticky behavior
                final float tabsTranslationY;
                if (y < maxY) {
                    tabsTranslationY = .0F;
                } else {
                    tabsTranslationY = y - maxY;
                }

                tabs.setTranslationY(tabsTranslationY);
            }
        });
    }
 
开发者ID:acien101,项目名称:DiedricoApp,代码行数:50,代码来源:TabsActivity.java


示例4: onCreate

import ru.noties.scrollable.CanScrollVerticallyDelegate; //导入依赖的package包/类
@Override
public void onCreate(Bundle sis) {
    super.onCreate(sis);

    setContentView(R.layout.activity_swipe_refresh);

    final SwipeRefreshLayout swipeRefreshLayout = findView(R.id.swipe_refresh_layout);
    final ScrollableLayout scrollableLayout = findView(R.id.scrollable_layout);
    final SampleHeaderView headerView = findView(R.id.header);
    final RecyclerView recyclerView = findView(R.id.recycler_view);

    swipeRefreshLayout.setColorSchemeResources(R.color.md_teal_500);
    swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
        @Override
        public void onRefresh() {
            swipeRefreshLayout.postDelayed(new Runnable() {
                @Override
                public void run() {
                    swipeRefreshLayout.setRefreshing(false);
                }
            }, 5000L);
        }
    });

    scrollableLayout.setCanScrollVerticallyDelegate(new CanScrollVerticallyDelegate() {
        @Override
        public boolean canScrollVertically(int direction) {
            return recyclerView.canScrollVertically(direction);
        }
    });

    scrollableLayout.setOnFlingOverListener(new OnFlingOverListener() {
        @Override
        public void onFlingOver(int y, long duration) {
            recyclerView.smoothScrollBy(0, y);
        }
    });

    scrollableLayout.addOnScrollChangedListener(new SampleHeaderViewOnScrollChangedListener(headerView));

    final ViewTypesAdapter<String> adapter = ViewTypesAdapter.builder(String.class)
            .register(String.class, new ViewTypeItem())
            .build(this);
    adapter.setItems(ItemsGenerator.generate(100));

    recyclerView.setLayoutManager(new LinearLayoutManager(this));
    recyclerView.setHasFixedSize(true);
    recyclerView.setAdapter(adapter);
}
 
开发者ID:noties,项目名称:Scrollable,代码行数:50,代码来源:SwipeRefreshActivity.java


示例5: onCreate

import ru.noties.scrollable.CanScrollVerticallyDelegate; //导入依赖的package包/类
@Override
public void onCreate(Bundle sis) {
    super.onCreate(sis);

    final Window window = getWindow();
    window.requestFeature(Window.FEATURE_NO_TITLE);

    setContentView(R.layout.activity_sample_list);

    final ScrollableLayout scrollableLayout = findView(R.id.scrollable_layout);
    final RecyclerView recyclerView = findView(R.id.recycler_view);
    final SampleHeaderView headerView = findView(R.id.header);

    recyclerView.setLayoutManager(new LinearLayoutManager(this));
    recyclerView.setHasFixedSize(true);

    scrollableLayout.setCanScrollVerticallyDelegate(new CanScrollVerticallyDelegate() {
        @Override
        public boolean canScrollVertically(int direction) {
            return recyclerView.canScrollVertically(direction);
        }
    });
    scrollableLayout.addOnScrollChangedListener(new SampleHeaderViewOnScrollChangedListener(headerView));

    scrollableLayout.setOnFlingOverListener(new OnFlingOverListener() {
        @Override
        public void onFlingOver(int y, long duration) {
            recyclerView.smoothScrollBy(0, y);
        }
    });
    scrollableLayout.setOverScrollListener(new ZoomInHeaderOverScrollListener(headerView, recyclerView));

    final ViewTypesAdapter<SampleListItem> adapter = ViewTypesAdapter.builder(SampleListItem.class)
            .register(SampleListItem.class, new SampleListItemViewType())
            .setHasStableIds(true)
            .registerOnClickListener(new OnItemClickListener<SampleListItem, Holder>() {
                @Override
                public void onItemClick(SampleListItem item, Holder holder) {
                    // yeah, conditions...
                    if (ScrollableDialog.class.equals(item.sampleActivityClass())) {
                        final ScrollableDialog dialog = new ScrollableDialog();
                        dialog.show(getSupportFragmentManager(), "tag.Dialog");
                    } else {
                        final Intent intent = new Intent(SampleListActivity.this, item.sampleActivityClass());
                        startActivity(intent);
                    }
                }
            })
            .build(this);
    adapter.setItems(sampleItems(getApplicationContext()));
    recyclerView.setAdapter(adapter);
}
 
开发者ID:noties,项目名称:Scrollable,代码行数:53,代码来源:SampleListActivity.java


示例6: onCreate

import ru.noties.scrollable.CanScrollVerticallyDelegate; //导入依赖的package包/类
@Override
public void onCreate(Bundle sis) {
    super.onCreate(sis);

    setContentView(R.layout.activity_scroll_header);

    final ScrollableLayout scrollableLayout = findView(R.id.scrollable_layout);
    final RecyclerView headerRecyclerView = findView(R.id.recycler_view_header);
    final RecyclerView contentRecyclerView = findView(R.id.recycler_view);
    final View header = findViewById(R.id.header);

    final ViewTypesAdapter<String> adapter = ViewTypesAdapter.builder(String.class)
            .register(String.class, new ViewTypeItem())
            .build(this);
    adapter.setItems(ItemsGenerator.generate(100));

    headerRecyclerView.setLayoutManager(new LinearLayoutManager(this));
    contentRecyclerView.setLayoutManager(new LinearLayoutManager(this));

    headerRecyclerView.setAdapter(adapter);
    contentRecyclerView.setAdapter(adapter);

    scrollableLayout.setFriction(.035F);
    scrollableLayout.setDraggableView(header);

    scrollableLayout.setCanScrollVerticallyDelegate(new CanScrollVerticallyDelegate() {
        @Override
        public boolean canScrollVertically(int direction) {
            return contentRecyclerView.canScrollVertically(direction);
        }
    });

    scrollableLayout.addOnScrollChangedListener(new OnScrollChangedListener() {

        final CCFAnimator mCCFAnimator = CCFAnimator.rgb(
                ContextCompat.getColor(ScrollHeaderActivity.this, R.color.md_teal_300),
                ContextCompat.getColor(ScrollHeaderActivity.this, R.color.md_teal_500)
        );

        @Override
        public void onScrollChanged(int y, int oldY, int maxY) {
            final float ratio = (float) y / maxY;
            headerRecyclerView.setBackgroundColor(mCCFAnimator.getColor(ratio));
        }
    });
}
 
开发者ID:noties,项目名称:Scrollable,代码行数:47,代码来源:ScrollHeaderActivity.java


示例7: onCreateDialog

import ru.noties.scrollable.CanScrollVerticallyDelegate; //导入依赖的package包/类
@Override
@NonNull
public Dialog onCreateDialog(Bundle sis) {

    final Dialog dialog = new Dialog(getActivity(), R.style.ScrollableDialogStyle);
    final LayoutInflater inflater = LayoutInflater.from(getActivity());
    final View view = inflater.inflate(R.layout.fragment_dialog, null);

    dialog.setContentView(view);

    final ScrollableLayout scrollableLayout = (ScrollableLayout) view.findViewById(R.id.scrollable_layout);
    final View placeholder = view.findViewById(R.id.dialog_placeholder);
    final View title = view.findViewById(R.id.dialog_title);

    placeholder.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            dismiss();
        }
    });

    scrollableLayout.setDraggableView(title);
    scrollableLayout.setFriction(getArguments().getFloat(ARG_FRICTION, BuildConfig.START_FRICTION));

    final ListView listView = (ListView) view.findViewById(R.id.list_view);
    final BaseListAdapter adapter = new BaseListAdapter(getActivity(), 50);
    listView.setAdapter(adapter);

    scrollableLayout.setCanScrollVerticallyDelegate(new CanScrollVerticallyDelegate() {
        @Override
        public boolean canScrollVertically(int direction) {
            return listView.canScrollVertically(direction);
        }
    });

    scrollableLayout.setOnScrollChangedListener(new OnScrollChangedListener() {
        @Override
        public void onScrollChanged(int y, int oldY, int maxY) {

            final float tY;
            if (y < maxY) {
                tY = .0F;
            } else {
                tY = y - maxY;
            }

            title.setTranslationY(tY);

            final float alpha = 1.F - ((float) y / maxY);
            placeholder.setAlpha(alpha);
        }
    });

    return dialog;
}
 
开发者ID:tianshiaimili,项目名称:suspendHeadTab,代码行数:56,代码来源:ScrollableDialog.java


示例8: finishCreateView

import ru.noties.scrollable.CanScrollVerticallyDelegate; //导入依赖的package包/类
@Override
public void finishCreateView(Bundle state) {
	APP_BAR_HEIGHT = getResources().getDimensionPixelSize(R.dimen.appbar_parallax_max_height);
	TAB_HEIGHT = getResources().getDimensionPixelSize(R.dimen.appbar_tab_height);
	TOOLBAR_HEIGHT = getResources().getDimensionPixelSize(R.dimen.abc_action_bar_default_height_material);
	if (Build.VERSION.SDK_INT >= 19) {
		STATUS_BAR_HEIGHT = Utility.getStatusBarHeight(getApplicationContext());
	}

	mBannerPager = $(R.id.banner_pager);
	mTabPager = $(R.id.tab_pager);
	mBannerIndicator = $(R.id.pager_indicator);
	mSlidingTab = $(R.id.sliding_tabs);
	mAppBarLayout = $(R.id.appbar_layout);
	mAppBarBackground = $(R.id.appbar_background);
	mScrollableLayout = $(R.id.scrollable);
	mBannerLoadingView = $(R.id.banner_loading_circle);

	ViewCompat.setElevation(mAppBarLayout, getResources().getDimensionPixelSize(R.dimen.toolbar_elevation));

	mHomeAdapter = new HomePagerAdapter(getChildFragmentManager(), getApplicationContext());
	mTabPager.setAdapter(mHomeAdapter);
	mSlidingTab.setViewPager(mTabPager);
	mSlidingTab.setCustomTabView(R.layout.tab_indicator, android.R.id.text1);
	mSlidingTab.setSelectedIndicatorColors(getResources().getColor(android.R.color.white));
	mSlidingTab.setDistributeEvenly(true);
	mSlidingTab.setOnTabItemClickListener(new SlidingTabLayout.OnTabItemClickListener() {
		@Override
		public void onTabItemClick(int pos) {
			if (pos != mTabPager.getCurrentItem()) return;
			mHomeAdapter.scrollToTop(pos);
		}
	});

	FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(
			ViewGroup.LayoutParams.MATCH_PARENT,
			ViewGroup.LayoutParams.MATCH_PARENT
	);
	lp.setMargins(0, STATUS_BAR_HEIGHT + TOOLBAR_HEIGHT + TAB_HEIGHT, 0, 0);
	mTabPager.setLayoutParams(lp);
	mScrollableLayout.setMaxScrollY(APP_BAR_HEIGHT - STATUS_BAR_HEIGHT - TOOLBAR_HEIGHT - TAB_HEIGHT);
	mScrollableLayout.setCanScrollVerticallyDelegate(new CanScrollVerticallyDelegate() {
		@Override
		public boolean canScrollVertically(int i) {
			return mHomeAdapter.canScrollVertically(mTabPager.getCurrentItem(), i);
		}
	});
	mScrollableLayout.setOnScrollChangedListener(new OnScrollChangedListener() {
		@Override
		public void onScrollChanged(int y, int oldY, int maxY) {
			float tabsTransitionY = y < maxY ? 0 : y - maxY;
			mSlidingTab.setTranslationY(tabsTransitionY);
			if (mBannerAdapter != null) {
				mBannerAdapter.setBannerImageTransitionY(tabsTransitionY * 0.7f);
			}

			float alpha = ((float) y) / (float) maxY;
			mAppBarBackground.setAlpha(alpha);
		}
	});

	new IndexGetTask().execute();
	startBannerGetTask();
}
 
开发者ID:fython,项目名称:BiliNyan-Android,代码行数:65,代码来源:SectionHomeFragment.java



注:本文中的ru.noties.scrollable.CanScrollVerticallyDelegate类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java RegExHelper类代码示例发布时间:2022-05-22
下一篇:
Java Genotype类代码示例发布时间:2022-05-22
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap