Androidギャラリーは、ダイナミックに高さをサイズ変更します
-
27-10-2019 - |
質問
カスタムビューを実行するために水平ギャラリーを作りたい:たとえば、「説明、価格、写真を備えた製品があり、カスタムレイアウトを構築し、GetViewとAdapterをオーバーライドします。
説明テキストが大きすぎる可能性があり、そのほんの一部のみを返してビューにロードします。このビューを拡張するための「詳細」ボタンがあります。ギャラリーの下には、いくつかのボタン、コントロールなどを備えた別のレイアウトビューがあります。
onmorebuttonclick説明textViewにフルテキストのみを設定します。ギャラリーの高さ私はラップコンテンントであり、サイズを動的に変更する必要があると思います。
ところで、短いテキストなしで全文をロードすると、すべてが大丈夫です。
これはアプリのメイン画面です。ボタンを押すと、ギャラリーアイテムを伸ばしてTimeanDatePickerを引き下げます。
しかし、私がそれを押すとき、私はしか見ることができません:
そして、私が小さなテキストなしで全文をロードすると、すべてが大丈夫です:
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" />
解決
私の場合には1つの「ハック」があります。
ギャラリーをもう1つのLinearLayoutに入れ、デフォルトでラップコンテンントとGallery FitParentにします。「詳細」ボタンをクリックすると、レイアウトの高さ(新しいTextView * Sizeoftextの前の高さ +カウントライン)を展開します。
所属していません StackOverflow