2012-06-26 2 views
0
RelativeLayout item = (RelativeLayout)findViewById(R.id.catalogParent); 

View child = getLayoutInflater().inflate(R.layout.detailedcatalog, null); 

RelativeLayout.LayoutParams layoutParams = new 
RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, 
ViewGroup.LayoutParams.WRAP_CONTENT); 

layoutParams.addRule(RelativeLayout.BELOW,view.getId()); 

item.addView(child, layoutParams); 

Выше приведен код для размещения макета под элементом списка. Функция view.getId() всегда возвращает -1. Относительная компоновка во время выполнения программно раздувается.Установите относительный макет под элементом списка list

lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { 

@Override 
public void onItemClick(AdapterView<?> arg0, View view, 
int position, long arg3) { 
...}} 

Объект view получен из функции onItemClick. Не могли бы вы помочь мне в этом. Заранее спасибо.

+0

что вам нужно? вы хотите добавить относительный макет, когда вы нажимаете на строку ListView? это так – rajpara

+0

да, detailcatalog.xml (относительный макет) - это представление, которое я хочу раздуть. – anonymous123

+0

view.getId() возвращает идентификатор listview row'id, который вы нажимаете, вам нужен идентификатор listview в layoutParams.addRule (RelativeLayout.BELOW, view.getId()); – rajpara

ответ

0

Поэтому я использовал view.getLocationInWindow (location), где location является массивом int размером 2, который дал мне позицию на экране элемента listview, а затем я разместил соответствующую компоновку на экране соответственно, используя координаты, полученные из местоположения.

Смежные вопросы