Search in sources :

Example 91 with LayoutParams

use of android.support.v7.widget.StaggeredGridLayoutManager.LayoutParams in project android2 by aqi00.

the class ScrollFlagActivity method initFlagSpinner.

// 初始化滚动标志的下拉框
private void initFlagSpinner() {
    ArrayAdapter<String> flagAdapter = new ArrayAdapter<String>(this, R.layout.item_select, descArray);
    flagAdapter.setDropDownViewResource(R.layout.item_dropdown);
    Spinner sp_style = findViewById(R.id.sp_flag);
    sp_style.setPrompt("请选择滚动标志");
    sp_style.setAdapter(flagAdapter);
    // 设置下拉框列表的选择监听器
    sp_style.setOnItemSelectedListener(new OnItemSelectedListener() {

        public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
            // 获取可折叠布局的布局参数
            LayoutParams params = (LayoutParams) ctl_title.getLayoutParams();
            // 设置布局参数中的滚动标志位
            params.setScrollFlags(flagArray[arg2]);
            // 设置可折叠布局的布局参数。注意:第三种滚动标志一定要调用setLayoutParams
            ctl_title.setLayoutParams(params);
        }

        public void onNothingSelected(AdapterView<?> arg0) {
        }
    });
    sp_style.setSelection(0);
}
Also used : LayoutParams(android.support.design.widget.AppBarLayout.LayoutParams) Spinner(android.widget.Spinner) OnItemSelectedListener(android.widget.AdapterView.OnItemSelectedListener) RecyclerView(android.support.v7.widget.RecyclerView) View(android.view.View) AdapterView(android.widget.AdapterView) ArrayAdapter(android.widget.ArrayAdapter)

Example 92 with LayoutParams

use of android.support.v7.widget.StaggeredGridLayoutManager.LayoutParams in project DragListView by woxblom.

the class BoardView method addColumnList.

public DragItemRecyclerView addColumnList(final DragItemAdapter adapter, final View header, boolean hasFixedItemSize) {
    final DragItemRecyclerView recyclerView = (DragItemRecyclerView) LayoutInflater.from(getContext()).inflate(R.layout.drag_item_recycler_view, this, false);
    recyclerView.setId(getColumnCount());
    recyclerView.setHorizontalScrollBarEnabled(false);
    recyclerView.setVerticalScrollBarEnabled(false);
    recyclerView.setMotionEventSplittingEnabled(false);
    recyclerView.setDragItem(mDragItem);
    recyclerView.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT));
    recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
    recyclerView.setHasFixedSize(hasFixedItemSize);
    recyclerView.setItemAnimator(new DefaultItemAnimator());
    recyclerView.setDragItemListener(new DragItemRecyclerView.DragItemListener() {

        @Override
        public void onDragStarted(int itemPosition, float x, float y) {
            mDragStartColumn = getColumnOfList(recyclerView);
            mDragStartRow = itemPosition;
            mCurrentRecyclerView = recyclerView;
            mDragItem.setOffset(((View) mCurrentRecyclerView.getParent()).getX(), mCurrentRecyclerView.getY());
            if (mBoardListener != null) {
                mBoardListener.onItemDragStarted(mDragStartColumn, mDragStartRow);
            }
            invalidate();
        }

        @Override
        public void onDragging(int itemPosition, float x, float y) {
            int column = getColumnOfList(recyclerView);
            boolean positionChanged = column != mLastDragColumn || itemPosition != mLastDragRow;
            if (mBoardListener != null && positionChanged) {
                mLastDragColumn = column;
                mLastDragRow = itemPosition;
                mBoardListener.onItemChangedPosition(mDragStartColumn, mDragStartRow, column, itemPosition);
            }
        }

        @Override
        public void onDragEnded(int newItemPosition) {
            mLastDragColumn = NO_POSITION;
            mLastDragRow = NO_POSITION;
            if (mBoardListener != null) {
                mBoardListener.onItemDragEnded(mDragStartColumn, mDragStartRow, getColumnOfList(recyclerView), newItemPosition);
            }
        }
    });
    recyclerView.setDragItemCallback(new DragItemRecyclerView.DragItemCallback() {

        @Override
        public boolean canDragItemAtPosition(int dragPosition) {
            int column = getColumnOfList(recyclerView);
            return mBoardCallback == null || mBoardCallback.canDragItemAtPosition(column, dragPosition);
        }

        @Override
        public boolean canDropItemAtPosition(int dropPosition) {
            int column = getColumnOfList(recyclerView);
            return mBoardCallback == null || mBoardCallback.canDropItemAtPosition(mDragStartColumn, mDragStartRow, column, dropPosition);
        }
    });
    recyclerView.setAdapter(adapter);
    recyclerView.setDragEnabled(mDragEnabled);
    adapter.setDragStartedListener(new DragItemAdapter.DragStartCallback() {

        @Override
        public boolean startDrag(View itemView, long itemId) {
            return recyclerView.startDrag(itemView, itemId, getRelativeViewTouchX((View) recyclerView.getParent()), getRelativeViewTouchY(recyclerView));
        }

        @Override
        public boolean isDragging() {
            return recyclerView.isDragging();
        }
    });
    LinearLayout layout = new LinearLayout(getContext());
    layout.setOrientation(LinearLayout.VERTICAL);
    layout.setLayoutParams(new LayoutParams(mColumnWidth, LayoutParams.MATCH_PARENT));
    if (header != null) {
        layout.addView(header);
        mHeaders.add(header);
    }
    layout.addView(recyclerView);
    mLists.add(recyclerView);
    mColumnLayout.addView(layout);
    return recyclerView;
}
Also used : LinearLayoutManager(android.support.v7.widget.LinearLayoutManager) RecyclerView(android.support.v7.widget.RecyclerView) HorizontalScrollView(android.widget.HorizontalScrollView) View(android.view.View) DefaultItemAnimator(android.support.v7.widget.DefaultItemAnimator) LinearLayout(android.widget.LinearLayout)

Example 93 with LayoutParams

use of android.support.v7.widget.StaggeredGridLayoutManager.LayoutParams in project AgentWebX5 by Justson.

the class ScrollingUtil method isRecyclerViewToTop.

public static boolean isRecyclerViewToTop(RecyclerView recyclerView) {
    if (recyclerView != null) {
        RecyclerView.LayoutManager manager = recyclerView.getLayoutManager();
        if (manager == null) {
            return true;
        }
        if (manager.getItemCount() == 0) {
            return true;
        }
        int firstChildTop = 0;
        if (recyclerView.getChildCount() > 0) {
            // 处理item高度超过一屏幕时的情况
            View firstVisibleChild = recyclerView.getChildAt(0);
            if (firstVisibleChild != null && firstVisibleChild.getMeasuredHeight() >= recyclerView.getMeasuredHeight()) {
                if (android.os.Build.VERSION.SDK_INT < 14) {
                    return !(ViewCompat.canScrollVertically(recyclerView, -1) || recyclerView.getScrollY() > 0);
                } else {
                    return !ViewCompat.canScrollVertically(recyclerView, -1);
                }
            }
            // 如果RecyclerView的子控件数量不为0,获取第一个子控件的top
            // 解决item的topMargin不为0时不能触发下拉刷新
            View firstChild = recyclerView.getChildAt(0);
            RecyclerView.LayoutParams layoutParams = (RecyclerView.LayoutParams) firstChild.getLayoutParams();
            firstChildTop = firstChild.getTop() - layoutParams.topMargin - getRecyclerViewItemTopInset(layoutParams) - recyclerView.getPaddingTop();
        }
        if (manager instanceof LinearLayoutManager) {
            LinearLayoutManager layoutManager = (LinearLayoutManager) manager;
            if (layoutManager.findFirstCompletelyVisibleItemPosition() < 1 && firstChildTop == 0) {
                return true;
            }
        } else if (manager instanceof StaggeredGridLayoutManager) {
            StaggeredGridLayoutManager layoutManager = (StaggeredGridLayoutManager) manager;
            int[] out = layoutManager.findFirstCompletelyVisibleItemPositions(null);
            if (out[0] < 1 && firstChildTop == 0) {
                return true;
            }
        }
    }
    return false;
}
Also used : RecyclerView(android.support.v7.widget.RecyclerView) StaggeredGridLayoutManager(android.support.v7.widget.StaggeredGridLayoutManager) LinearLayoutManager(android.support.v7.widget.LinearLayoutManager) AbsListView(android.widget.AbsListView) RecyclerView(android.support.v7.widget.RecyclerView) ScrollView(android.widget.ScrollView) View(android.view.View) WebView(android.webkit.WebView)

Example 94 with LayoutParams

use of android.support.v7.widget.StaggeredGridLayoutManager.LayoutParams in project 91Pop by DanteAndroid.

the class MeiZiTuAdapter method convert.

@Override
protected void convert(BaseViewHolder helper, MeiZiTu item) {
    ImageView imageView = helper.getView(R.id.iv_item_mei_zi_tu);
    GlideApp.with(helper.itemView.getContext()).load(buildGlideUrl(item.getThumbUrl())).transition(new DrawableTransitionOptions().crossFade(300)).into(imageView);
    int height;
    if (!heightMap.containsKey(item.getThumbUrl())) {
        height = item.getHeight() * width / item.getWidth();
        heightMap.put(item.getThumbUrl(), height);
    } else {
        height = heightMap.get(item.getThumbUrl());
    }
    StaggeredGridLayoutManager.LayoutParams layoutParams = (StaggeredGridLayoutManager.LayoutParams) helper.itemView.getLayoutParams();
    layoutParams.height = height;
    helper.itemView.setLayoutParams(layoutParams);
}
Also used : DrawableTransitionOptions(com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions) StaggeredGridLayoutManager(android.support.v7.widget.StaggeredGridLayoutManager) ImageView(android.widget.ImageView)

Example 95 with LayoutParams

use of android.support.v7.widget.StaggeredGridLayoutManager.LayoutParams in project 91Pop by DanteAndroid.

the class Mm99Adapter method convert.

@Override
protected void convert(final BaseViewHolder helper, final Mm99 item) {
    final ImageView imageView = helper.getView(R.id.iv_item_99_mm);
    GlideApp.with(helper.itemView.getContext()).asBitmap().load(item.getImgUrl()).transition(new BitmapTransitionOptions().crossFade(300)).into(new SimpleTarget<Bitmap>() {

        @Override
        public void onResourceReady(@NonNull Bitmap resource, @Nullable Transition<? super Bitmap> transition) {
            imageView.setImageBitmap(resource);
            int height;
            if (!heightMap.containsKey(item.getImgUrl())) {
                height = resource.getHeight() * width / item.getImgWidth();
                heightMap.put(item.getImgUrl(), height);
            } else {
                height = heightMap.get(item.getImgUrl());
            }
            StaggeredGridLayoutManager.LayoutParams layoutParams = (StaggeredGridLayoutManager.LayoutParams) helper.itemView.getLayoutParams();
            layoutParams.height = height;
            helper.itemView.setLayoutParams(layoutParams);
        }
    });
}
Also used : Bitmap(android.graphics.Bitmap) BitmapTransitionOptions(com.bumptech.glide.load.resource.bitmap.BitmapTransitionOptions) StaggeredGridLayoutManager(android.support.v7.widget.StaggeredGridLayoutManager) ImageView(android.widget.ImageView)

Aggregations

View (android.view.View)138 RecyclerView (android.support.v7.widget.RecyclerView)128 TextView (android.widget.TextView)52 ImageView (android.widget.ImageView)36 LinearLayout (android.widget.LinearLayout)32 ViewGroup (android.view.ViewGroup)31 LayoutParams (android.support.v7.widget.RecyclerView.LayoutParams)16 StaggeredGridLayoutManager (android.support.v7.widget.StaggeredGridLayoutManager)15 FrameLayout (android.widget.FrameLayout)15 LinearLayoutManager (android.support.v7.widget.LinearLayoutManager)13 Paint (android.graphics.Paint)12 RelativeLayout (android.widget.RelativeLayout)12 BindView (butterknife.BindView)12 Rect (android.graphics.Rect)11 Toolbar (android.support.v7.widget.Toolbar)11 EditText (android.widget.EditText)10 DialogInterface (android.content.DialogInterface)9 Handler (android.os.Handler)9 AdapterView (android.widget.AdapterView)9 Intent (android.content.Intent)8