Галерея Android Динамически изменение размера высота
-
27-10-2019 - |
Вопрос
Я хочу сделать горизонтальную галерею для выполнения пользовательских просмотров: например, желание иметь множество продуктов с его описанием, ценой и фото, я строю пользовательский макет и переопределяю GetView и Adapter.
Описание текст может быть слишком большим, и я возвращаю только небольшую часть его и загружаю в вид. Есть кнопка «больше», чтобы расширить эту точку зрения. Под галереей есть еще один вид макета с некоторыми кнопками, элементами управления и т. Д.
OnmoreButtonClick Я только установил полный текст в описание TextView. Высота галереи I обертывает, и я думаю, что она должна динамически изменять размер.
Кстати, если я загружаю полный текст без короткого - все в порядке.
Это главный экран приложения, когда я нажимаю кнопку, я хочу, чтобы элемент галереи растянулся и вытащил TimeAndDatePicker вниз.
Но когда я нажимаю на него, я могу только увидеть:
И если я загружаю полный текст без маленького, все в порядке:
Main.xml:
<?xml version="1.0" encoding="utf-8"?>
android:layout_width="fill_parent"
android:id = "@+id/scene"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="@drawable/main_background" >
<ScrollView
android:id="@+id/scrollView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fillViewport="true" >
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<ru.human.samples.CustomGallery
android:id="@+id/galleryUnique"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:spacing="1dp" android:unselectedAlpha="255.0" android:visibility="visible" android:fadingEdge="none"/>
<DatePicker
android:id="@+id/datePicker1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
</ScrollView>
И GalleryItem XML:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:orientation="horizontal" >
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_launcher" />
<TextView
android:id="@+id/price"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
style="@style/PriceText"
android:text="Medium Text"/>
</LinearLayout>
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
style="@style/BodyText"
android:text="TextView" />
<TextView
android:id="@+id/description"
android:layout_width="match_parent"
style="@style/BodyText"
android:text="Medium Text"
android:layout_height="wrap_content" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button" />
Решение
В моем случае есть один "взлом".
Я поместил галерею в еще одну линейную ловушку, сделаю ее упакованным по умолчанию и галерею FitParent, когда я нажимаю кнопку «Больше», я расширяю высоту макета (предыдущая высота + линии отсчета нового TextView * sizeoftext).