Невозможно установить поля элемента в ListView с помощью пользовательского адаптера

уваю RelativeLayout из XML, а затем пытаюсь программно установить его параметры макета и получаю ClassCastException.

Код:

profileHeader = (RelativeLayout)mInflater.inflate(R.layout.user_profile_header, null);
profileHeader.setLayoutParams(new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.FILL_PARENT, RelativeLayout.LayoutParams.FILL_PARENT));

бросает

E/AndroidRuntime( 2963): java.lang.ClassCastException: android.widget.RelativeLayout$LayoutParams
E/AndroidRuntime( 2963):  at android.widget.ListView.measureScrapChild(ListView.java:1119)
E/AndroidRuntime( 2963):  at android.widget.ListView.measureHeightOfChildren(ListView.java:1202)
E/AndroidRuntime( 2963):  at android.widget.ListView.onMeasure(ListView.java:1111)
E/AndroidRuntime( 2963):  at android.view.View.measure(View.java:8222)
E/AndroidRuntime( 2963):  at android.view.ViewGroup.measureChildWithMargins(V

Я видел другие заметки в сети, чтобы попытаться использовать LinearLayout.LayoutParams, но это, похоже, не помогает.

Если вам интересно, почему я делаю это вообще, а НЕ просто устанавливаю это в XML, потому что я вижу что-то странное, когда макет «переходит» на перенос / перенос. Я установил его в fill_parent / fill_parent в XML и при прокрутке представление «сжимается» до того, что выглядит как обтекание / обтекание Это действительно странно. Глядя на исходный код Android в формате Foursquared, я нашел комментарий, в котором разработчик говорит то же самое:

«Что-то странное происходит с параметрами макета. Если мы явно не установим макет для заполнения / заполнения после надувания, макет переходит к макету с переносом / переносом». (FriendsActivity.java:258)

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

Чего мне не хватает? Заранее спасибо.

Ответы на вопрос(1)

Ваш ответ на вопрос