当前位置: 首页>>代码示例>>Java>>正文


Java RecyclerView.getParent方法代码示例

本文整理汇总了Java中android.support.v7.widget.RecyclerView.getParent方法的典型用法代码示例。如果您正苦于以下问题:Java RecyclerView.getParent方法的具体用法?Java RecyclerView.getParent怎么用?Java RecyclerView.getParent使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在android.support.v7.widget.RecyclerView的用法示例。


在下文中一共展示了RecyclerView.getParent方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: setupAlignment

import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
private void setupAlignment(RecyclerView recycler) {
    if (!mAlreadyAligned) {
        //setting alignment of header
        ViewGroup.LayoutParams currentParams = getLayoutParams();
        FrameLayout.LayoutParams newHeaderParams;
        int width = ViewGroup.LayoutParams.WRAP_CONTENT;
        int height = ViewGroup.LayoutParams.WRAP_CONTENT;
        int gravity = (mReversed ? Gravity.BOTTOM : Gravity.TOP) | Gravity.CENTER_HORIZONTAL;
        if (currentParams != null) {
            newHeaderParams = new FrameLayout.LayoutParams(getLayoutParams()); //to copy all the margins
            newHeaderParams.width = width;
            newHeaderParams.height = height;
            newHeaderParams.gravity = gravity;
        } else {
            newHeaderParams = new FrameLayout.LayoutParams(width, height, gravity);
        }
        RecyclerViewHeader.this.setLayoutParams(newHeaderParams);

        //setting alignment of recycler
        FrameLayout newRootParent = new FrameLayout(recycler.getContext());
        newRootParent.setLayoutParams(recycler.getLayoutParams());
        ViewParent currentParent = recycler.getParent();
        if (currentParent instanceof ViewGroup) {
            int indexWithinParent = ((ViewGroup) currentParent).indexOfChild(recycler);

            ((ViewGroup) currentParent).removeViewAt(indexWithinParent);
            recycler.setLayoutParams(new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
            newRootParent.addView(recycler);
            newRootParent.addView(RecyclerViewHeader.this);
            ((ViewGroup) currentParent).addView(newRootParent, indexWithinParent);
        }
    }
}
 
开发者ID:weiwenqiang,项目名称:GitHub,代码行数:34,代码来源:RecyclerViewHeader.java

示例2: validateRecycler

import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
private void validateRecycler(RecyclerView recycler, boolean headerAlreadyAligned) {
    RecyclerView.LayoutManager layoutManager = recycler.getLayoutManager();
    if (layoutManager == null) {
        throw new IllegalStateException("Be sure to call RecyclerViewHeader constructor after setting your RecyclerView's LayoutManager.");
    } else if (layoutManager.getClass() != LinearLayoutManager.class    //not using instanceof on purpose
            && layoutManager.getClass() != GridLayoutManager.class
            && !(layoutManager instanceof StaggeredGridLayoutManager)) {
        throw new IllegalArgumentException("Currently RecyclerViewHeader supports only LinearLayoutManager, GridLayoutManager and StaggeredGridLayoutManager.");
    }

    if (layoutManager instanceof LinearLayoutManager) {
        if (((LinearLayoutManager) layoutManager).getOrientation() != LinearLayoutManager.VERTICAL) {
            throw new IllegalArgumentException("Currently RecyclerViewHeader supports only VERTICAL orientation LayoutManagers.");
        }
    } else if (layoutManager instanceof StaggeredGridLayoutManager) {
        if (((StaggeredGridLayoutManager) layoutManager).getOrientation() != StaggeredGridLayoutManager.VERTICAL) {
            throw new IllegalArgumentException("Currently RecyclerViewHeader supports only VERTICAL orientation StaggeredGridLayoutManagers.");
        }
    }

    if (!headerAlreadyAligned) {
        ViewParent parent = recycler.getParent();
        if (parent != null &&
                !(parent instanceof LinearLayout) &&
                !(parent instanceof FrameLayout) &&
                !(parent instanceof RelativeLayout)) {
            throw new IllegalStateException("Currently, NOT already aligned RecyclerViewHeader " +
                    "can only be used for RecyclerView with a parent of one of types: LinearLayout, FrameLayout, RelativeLayout.");
        }
    }
}
 
开发者ID:weiwenqiang,项目名称:GitHub,代码行数:32,代码来源:RecyclerViewHeader.java

示例3: setDataTwoWay

import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
/**
 * (伪)双向 databinding: 自动调用 {@link TwoWayListVM#getLoadTask()},
 *      并自动触发 {@link TwoWayListVM#setData(ObservableArrayList)}
 *      然后自动更新 RecyclerView
 *
 * @param container
 * @param vm
 * @param datas
 * @param <T>
 */
@BindingAdapter({"vm", "data"})
public static <T> void setDataTwoWay(final RecyclerView container, final ListVM<T> vm, List<T> datas){
    if(vm == null){
        return ;
    }
    setData(container, vm, datas);

    if(vm instanceof TwoWayListVM) {
        boolean isInited = container.getTag(R.id.db_inited) != null;
        if (!isInited) {
            container.setTag(R.id.db_inited, true);

            final TwoWayListVM<T> _vm = ((TwoWayListVM<T>) vm);

            loadData(container, _vm, null, null);
            // 若 parent 可下拉刷新,设置回调
            ViewParent parent = container.getParent();
            if (parent != null && parent instanceof TwoWayListVM.Refreshable) {
                final TwoWayListVM.Refreshable refreshable = (TwoWayListVM.Refreshable) parent;
                ((TwoWayListVM.Refreshable) parent).setOnRefresh(new TwoWayListVM.Refreshable.CallBack() {
                    @Override
                    public void onRefresh() {
                        loadData(container, _vm, null, refreshable);
                    }

                    @Override
                    public void onLoadMore() {
                        List<T> data = _vm.getData();
                        if (data.size() - 1 >= 0) {
                            loadData(container, _vm, data.get(data.size() - 1), refreshable);
                        }
                    }
                });
            }
        }
    }
}
 
开发者ID:fashare2015,项目名称:MVVM-JueJin,代码行数:48,代码来源:RecyclerViewAdapter.java

示例4: onAttachedToRecyclerView

import android.support.v7.widget.RecyclerView; //导入方法依赖的package包/类
@Override
public void onAttachedToRecyclerView(RecyclerView recyclerView) {
    super.onAttachedToRecyclerView(recyclerView);
    ViewParent parent = recyclerView.getParent();
    if (parent != null && parent instanceof XRefreshView) {
        mParent = (XRefreshView) recyclerView.getParent();
        if (mParent != null && !observer.hasAttached()) {
            observer.setData(this, mParent);
            observer.attach();
            registerAdapterDataObserver(observer);
        }
    }
}
 
开发者ID:LonelyMushroom,项目名称:aarLibrary,代码行数:14,代码来源:BaseRecyclerAdapter.java


注:本文中的android.support.v7.widget.RecyclerView.getParent方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。