Mám fragment s a textView
dávať pokyny a pod gridView
, Chcel som pre textView
na posúvanie smerom hore gridView
, Inými slovami: pre textView
keď zmizne obrazovka gridView
sa pohybuje.
Moja myšlienka, ako to dosiahnuť, je dať gridView
pevnú výšku, ktorá by umožnila posúvanie celého rozloženia - vrátane textView
, Avšak, kým to nemôžem dosiahnuť. Existuje spôsob, ako to urobiť?
Rozloženie bez posúvania:
Pri posúvaní:
Akákoľvek pomoc / rada by bola ocenená.
Moje rozloženie XML:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/LightGrey"
android:gravity="center_horizontal|center_vertical"
android:orientation="vertical" >
<TextView
android:id="@+id/chooseLine"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="18dp"
android:text="@string/chooseLine"
android:textAppearance="?android:attr/textAppearanceLarge" />
<GridView
android:id="@+id/gridLayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:columnWidth="130dp"
android:fitsSystemWindows="false"
android:gravity="center"
android:horizontalSpacing="5dp"
android:numColumns="auto_fit"
android:paddingTop="0dp"
android:stretchMode="columnWidth"
android:verticalSpacing="25dp" />
</LinearLayout>
odpovede:
2 pre odpoveď č. 1Dosiahnutie tohto cieľa nebude triviálne. Potrebujete funkciu ListView pridať záhlavie hlavičky, ale bohužiaľ GridView neposkytuje túto funkčnosť.
Čo som v minulosti urobil, aby som to vyriešilproblém je previesť GridView do ListView a potom pridať hlavičku do ListView. Vytvoril som adaptér na obal, ktorý zachytí pôvodný adaptér a spojí bunky mriežky s horizontálnym riadkom do jedného riadku zoznamu.
Zložité časti zahŕňajú: dynamické prispôsobenie počtu stĺpcov v riadku na základe šírky obrazovky, účtovanie všetkých kombinácií typov zobrazenia v riadku a zvyšných prázdnych stĺpcov v poslednom riadku a správne zaobchádzanie s interakciami s kliknutiami.
1 pre odpoveď č. 2
Vložte celý LinearLayout do ScrollView (Ako používať ScrollView v systéme Android?) a pre súbor GridView android: layout_height = "wrap_content"