Вопрос: ExpandableListAdapter.getChildView () взаимодействие с AbsListView.LayoutParams


Я работаю над расширением BaseExpandableListAdapter и имею следующую реализацию getChildView ():

public View getChildView(int groupPosition, int childPosition, 
    boolean isLastChild, View convertView, ViewGroup parent) 
{
    AbsListView.LayoutParams lp = new AbsListView.LayoutParams
        (ViewGroup.LayoutParams.FILL_PARENT, 48);
    RelativeLayout layout = new RelativeLayout(myExpandableListActivity.this);
    layout.setLayoutParams(lp);
    TextView name = new TextView(myExpandableListActivity.this);
    name.setText("testing...");
    layout.addView(name);
    return layout;
}

Этот код работает, и когда я запускаю приложение, разворачиваю группу и нажимаю на дочернее устройство, родительское приложение может правильно обнаружить onChildClick ().

Однако я заметил, что onChildClick () больше не работает, если я не вызываю setLayoutParms (). Мой вопрос: что происходит, когда я назначаю AbsListView.LayoutParams возврату дочернего представления? Почему требуется, чтобы мой onChildClick () ответил в родительском приложении?

Заранее спасибо!


4


источник


Ответы:


После игры с другими частями кода еще немного, похоже, что упущение setLayoutParms () не было тем, что вызывало мой onChildClick (), чтобы он не работал. Я также использовал разводку макета для настройки моего RelativeLayout, который включал CheckBox. Оказывается, именно CheckBox заставлял ребенка быть незаметным, что мне нужно будет изучить дальше.

RelativeLayout spellLayout = (RelativeLayout) 
    getLayoutInflater().inflate(R.layout.testLayout, null);

Спасибо за прочтение!


0