使用按钮向ListView项添加多个自定义LinearLayouts

时间:2017-10-06 09:42:46

标签: android android-layout listview button layout-inflater

我有一个与this one相关的问题。

有人问过以编程方式将多个自定义LinearLayouts添加到ListView项目,这几乎是我需要做的。在这个问题中,作者在LinearLayout中有TextViews。我有一个Button(以及其他一些),当我点击这个按钮时,我想在这个按钮下点击一个新的LinearLayout。

如何获取当前的LinearLayout位置,以便在其下添加新的LinearLayout?现在我在列表底部添加新的LinearLayout。

2 个答案:

答案 0 :(得分:0)

你可以这样做

yourListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    public void onItemClick(AdapterView<?> parent, View view,int position, long id) {
        //if you want get linearLayout at current position
        LinearLayout LINTOP = ((LinearLayout) parent.getChildAt(0));
        addLayout(LINTOP);
    }
});

在LINTOP

下添加这样的新布局
public void addLayout(LinearLayout parent){
    LinearLayout newLayout= new LinearLayout(this);
    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
    LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
    parent.addView(newLayout, 0, params);
}

答案 1 :(得分:-1)

首先,请使用RecyclerView代替ListView

您有一个名为getAdapterPosition()的方法,它返回发生交互的位置。所以在ViewHolder中你是否像

那样

linearLayoutView.setOnClickListener { Log.d("Position:"+getAdapterPostion()); }

那会给你这个位置。 (上面的代码在Kotlin btw中,所以可能看起来有点不同)