我正在设置一个像列表一样的RecyclerView,我想在列表底部有一个按钮,当点击时添加更多视图,我认为更简单的方法是将位置0作为第一个在在底部,并将位置增加到顶部,因此我可以在单击位置0中的视图时添加视图.如果对这个问题有更好的方法,请分享.
这是我的适配器:
public class AddEventsAdapter extends RecyclerView.Adapter<AddEventsAdapter.ViewHolder> {
public List<String> items = new ArrayList<>();
public void addItem(String name) {
notifyItemInserted(items.size() - 1);
items.add(name);
}
public void removeItem(int position) {
items.remove(position);
notifyItemRemoved(position);
notifyItemRangeChanged(position, items.size());
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LayoutInflater inflater = LayoutInflater.from(parent.getContext());
View view = inflater.inflate(R.layout.add_event_item, parent, false);
return new ViewHolder(view);
}
@Override
public int getItemCount() {
return items.size();
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
holder.setData(position);
holder.eventName.setText(i + "");
if(position == 0)
{ …
Run Code Online (Sandbox Code Playgroud) 我正在尝试检查RelativeLayout.LayoutParams中的规则,但getRule()仅在API 23中引入,有没有办法在早期版本中执行此操作?
是否可以检查ScrollView是否在顶部滚动?
我想检查一下,这样我就可以启用SwipeRefreshLayout,否则将其禁用.
使用ListView可以像这样完成,但ScrollViews没有setOnScrollListener
listView.setOnScrollListener(new OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
boolean enable = false;
if(listView != null && listView.getChildCount() > 0){
// check if the first item of the list is visible
boolean firstItemVisible = listView.getFirstVisiblePosition() == 0;
// check if the top of the first item is visible
boolean topOfFirstItemVisible = listView.getChildAt(0).getTop() == 0;
// enabling or disabling the refresh layout
enable …
Run Code Online (Sandbox Code Playgroud) 行为的视频:https : //vid.me/nF1J
移除:
viewHolder.buttonDelete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mItemManger.removeShownLayouts(viewHolder.swipeLayout);
mDataset.remove(position);
notifyItemRemoved(position);
notifyItemRangeChanged(position, mDataset.size());
mItemManger.closeAllItems();
Toast.makeText(view.getContext(), "Deleted " + viewHolder.textViewPos.getText().toString() + "!", Toast.LENGTH_SHORT).show();
}
});
Run Code Online (Sandbox Code Playgroud)
我怎样才能解决这个问题?
注意: 我正在使用此库,并且已经更新了库。
更新:
viewHolder.buttonDelete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mItemManger.removeShownLayouts(viewHolder.swipeLayout);
mResultArray.remove(position);
notifyItemRangeChanged(position, mResultArray.size());
notifyItemRemoved(position);
mItemManger.closeAllItems();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
notifyDataSetChanged();
}
}, 500);
}
});
Run Code Online (Sandbox Code Playgroud) 我有要使用的库,可以安装一个版本,但是开发人员发布了最新的SNAPSHOT版本,如何编译它?
我尝试了compile 'com.(...):1.4.0-SNAPSHOT
没有结果?