android - 单击 RecyclerView 更改项目布局

标签 android layout draw

我有这样的 ListView Activity :

enter image description here

我想像这样更改点击时的项目​​布局:

enter image description here

我的 RecycleView 适配器: 公共(public)类 ComenziViewAdapter 扩展 RecyclerView.Adapter {

private final List<Comanda> mValues;
private final ComenziFragment.OnListFragmentInteractionListener listener;
public ComenziViewAdapter(List<Comanda> items, ComenziFragment.OnListFragmentInteractionListener listener) {
    mValues = items;
    this.listener = listener;
}

@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View view = LayoutInflater.from(parent.getContext())
            .inflate(R.layout.fragment_comenzi, parent, false);
    View expandedView = LayoutInflater.from(parent.getContext())
            .inflate(R.layout.fragment_comenzi_expanded,parent,false);

    return new ViewHolder(view,expandedView);
}

@Override
public void onBindViewHolder(final ViewHolder holder, int position) {
    holder.mItem = mValues.get(position);
    holder.mIdView.setText(""+mValues.get(position).getId());
    holder.mContentView.setText(mValues.get(position).getTraseu());

    holder.mView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            holder.setView(holder.getExpandedView());

            listener.onListFragmentInteraction(holder.mItem);
        }
    });
}

@Override
public int getItemCount() {
    return mValues.size();
}

public class ViewHolder extends RecyclerView.ViewHolder {
    public View mView;
    public View expandedView;
    public TextView mIdView;
    public TextView mContentView;
    public Comanda mItem;

    public ViewHolder(View view,View expandedView) {
        super(view);
        mView = view;
        this.expandedView = expandedView;
        mIdView = (TextView) view.findViewById(R.id.id);
        mContentView = (TextView) view.findViewById(R.id.content);
    }
    public View getView()
    {
        return this.mView;
    }
    public void setView(View view)
    {
        mView = view;
    }
    public View getExpandedView()
    {
        return this.expandedView;
    }
    @Override
    public String toString() {
        return super.toString() + " '" + mContentView.getText() + "'";
    }
}

如何在用户点击项目时更改布局?

最佳答案

我认为这不是正确的做法(更改 ViewHolder setView)

简单的解决方案是使“扩展” View 在 R.layout.fragment_comenzi 中消失,并在点击注册时使其可见。

关于android - 单击 RecyclerView 更改项目布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34570041/

相关文章:

android - 由于 AndroidManifest.xml 存在问题,无法构建 APK

android - 更改提示 EditText 的颜色 - Android

android - 在同一 Activity 中更改/使用多个布局?

android - 在 Android 上拖动以动态调整一对相邻布局的大小

iphone - 使用 CATiledLayer 显示已以编程方式拆分为图 block 的大图像

php - PHP UML 建模工具

Android - 取消 Volley 请求

android - 带有另一个 View 的背景可绘制选择器的 setBackgroundDrawable 打破了选择器状态

android - CountDownTimer 如何在 OnTick 方法中访问 UI?

java - 在屏幕的一部分的 Canvas 上绘图