我有一个与this one相关的问题。
有人问过以编程方式将多个自定义LinearLayouts添加到ListView项目,这几乎是我需要做的。在这个问题中,作者在LinearLayout中有TextViews。我有一个Button(以及其他一些),当我点击这个按钮时,我想在这个按钮下点击一个新的LinearLayout。
如何获取当前的LinearLayout位置,以便在其下添加新的LinearLayout?现在我在列表底部添加新的LinearLayout。
答案 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中,所以可能看起来有点不同)