У меня есть приложение, которое после некоторого нажатия показывает активность с содержимым новостей. Я хочу, чтобы в нижней части этого отображались комментарии, которые динамически загружаются в async-задачу.Программно добавить виды внутри (линейного) макета (который находится внутри ScrollView)
Один из подходов - использовать ListView и настраиваемый ArrayAdapter, но мне придется поместить ListView внутри ScrollView, и это проблема, даже если я вручную переопределяю высоту ListView. Он показывает один элемент списка и одну часть следующего.
Другой подход заключается в определении LinearLayout в качестве владельца для комментариев, чем раздувание другого LinearLayouts, определенного в его собственном XML-файле, заполнение его содержимого, прикрепление к представлению владельца. Он отлично работает, с точки зрения программы, за исключением того, что он подталкивает комментарии к содержимому новостей. Это похоже на то, что он создает другой прокручиваемый вид комментариев под содержимым новостей (содержимое перекрывает его).
Есть ли другой способ сделать это, который не имеет ничего общего со списками или как я могу заставить другой подход работать.
Соответствующий фрагмент кода из XML-макета, который содержит содержание новостей является:
<LinearLayout> //global layout
<LinearLayout>
//views that hold title, date, content
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/commentsHolder"
android:orientation="vertical">
<View
android:layout_width="fill_parent"
android:layout_height="2dp"
android:background="#ed1b24"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:text="KOMENTARI"
android:layout_marginLeft="5dp"/>
<View
android:layout_width="fill_parent"
android:layout_height="1dp"
android:background="#ed1b24"/>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="0dip"
android:orientation="vertical"
android:id="@+id/comments_holder_view"
android:layout_weight="1">
</LinearLayout>
</LinearLayout>
</LinearLayout>
и код, который соответствует одному комментарий:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/comments_holder_item"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="5dp">
<TextView
android:id="@+id/comment_content"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/comments_back_details"
android:text="Ovde ide tekst komentara, koji se, naravno, dinamicki dodaje."/>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/comment_author"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/categoryStyle"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" | "
style="@style/categoryStyle"
/>
<TextView
android:id="@+id/comment_pubdate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/categoryStyle"/>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="1dp"
android:orientation="horizontal"
android:layout_margin="5dp"
android:background="#d1d1d1">
</LinearLayout>
Большое спасибо за любые Ответить. Для меня это очень важно.
обычно вы будете использовать 'getLayoutInflater(). inflate (R.layout.comment, null);' из вашей активности – njzk2
Я сделал точно так же, как вы опубликовали Ovidiu, он отлично работает, но каким-то образом этот линейный макет (с id comments_holder_vie w), который содержит комментарии, лежит под другими макетами. Если я включаю несколько макетов комментариев статически (вручную), все отображается в порядке. Кажется, что проблема возникает при динамическом добавлении этих представлений. Тем не менее, спасибо за ответ. – Dimmy3
, пожалуйста, напишите какой-нибудь код того, как вы создаете добавленные представления (комментарии)? –