android - 像 PInterest 一样的布局

标签 android

我想在我的代码中制作一个像 pinterest 这样的自定义 View ,我在 scrollview 中使用 scrollView 和 3 linearlayout 我自定义我的 View 名称 waterfallView 这里是代码:

public class WaterfallView extends LinearLayout {

private ListAdapter m_Adapter;
private OnClickListener onClickListener = null;
private LinearLayout m_Line1;
private LinearLayout m_Line2;
private LinearLayout m_Line3;

public WaterfallView(Context context) {
    super(context);
    // TODO Auto-generated constructor stub
    InitLine();
}

public WaterfallView(Context context, AttributeSet attrs) {
    super(context, attrs);
    InitLine();
}

private void InitLine() {

    LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
            LinearLayout.LayoutParams.MATCH_PARENT,
            LinearLayout.LayoutParams.MATCH_PARENT);
    lp.weight = 1;

    // line2
    m_Line1 = new LinearLayout(this.getContext());
    m_Line1.setOrientation(VERTICAL);
    m_Line1.setLayoutParams(lp);

    // line2
    m_Line2 = new LinearLayout(this.getContext());
    m_Line2.setOrientation(VERTICAL);
    m_Line2.setLayoutParams(lp);

    // line3
    m_Line3 = new LinearLayout(this.getContext());
    m_Line3.setOrientation(VERTICAL);
    m_Line3.setLayoutParams(lp);

    addView(m_Line1);
    addView(m_Line2);
    addView(m_Line3);
}

public ListAdapter getAdapter() {
    return m_Adapter;
}

private void BindLayout() {
    int count = m_Adapter.getCount();
    for (int i = 0; i < count; i++) {
        View v = m_Adapter.getView(i, null, null);
        v.setOnClickListener(this.onClickListener);
        if (i == 0 || i % 3 == 0)
            m_Line1.addView(v);

        if (i == 1 || i % 3 == 1)
            m_Line2.addView(v);

        if (i == 2 || i % 3 == 2)
            m_Line3.addView(v);
    }
    Log.v("countTAG", "" + count);
}

private void AddItem(){

}

public void setAdapter(ListAdapter adapter) {
    this.m_Adapter = adapter;
    BindLayout();
}

public OnClickListener getOnclickListner() {
    return onClickListener;
}

public void setOnclickLinstener(OnClickListener onClickListener) {
    this.onClickListener = onClickListener;
    }
}

在 BindLayout 函数中有 m_Adapter.getView(i, null, null); 然后是第二个参数 convertView 我想要使用 RecycleBin 的 AbsListView 类 我怎么能那样做?

Pinterest 3 column layout

最佳答案

看看 Umano 团队的 MultiItemRowListAdapter:https://github.com/umano/MultiItemRowListAdapter/blob/master/README.md

关于android - 像 PInterest 一样的布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9866404/

相关文章:

android - 尝试动态插入相对布局时获取 ClassCastException?

android - 如何从 H264 流中获取 slice-height 和 stride?

android - 在预览布局中使用自定义 View 中的自定义属性

android - "WSEGL_WaitNative: Unrecognized engine"错误的可能原因是什么? (安卓NDK)

android - 如何包装到内容 Android 首选项摘要值?

android - 如何将我的 Firebase 实时数据库传输到 Firebase Cloud Firestore

java - 如何检查 JSON key 是否存在?

android - 在 RecyclerView 上膨胀类 ImageView 时出错

使用 ffmpeg 进行 Android 视频编辑

android - SQLite:在 Windows 上为 "database disk image is malformed"但在 Android 上正常