将多个自定义LinearLayouts与按钮添加到ListView项目

我有一个相关的问题。

有人询问有关添加多个自定义LinearLayouts编程到ListView项目,这几乎是我需要做的。 在这个问题中,作者在LinearLayout中有TextViews。 我有一个按钮(和一些其他),当我点击这个按钮,我想膨胀一个新的LinearLayout下这个只需点击按钮。

如何获得当前的LinearLayout位置,所以我可以在它下面添加新的LinearLayout? 现在我在列表底部添加新的LinearLayout。

你可以这样做

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); } 

首先,请使用RecyclerView而不是ListView

你有一个名为getAdapterPosition()的方法,它返回交互发生的位置。 所以在ViewHolder中,如果你这样的话

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

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