Dzień dobry,
Mam listę generowaną stopniowo na ekranie użytkowników (obecnie lista znajduje się w widoku przewijania, ale może to nie być ostatnie miejsce spoczynku). Nad widokiem przewijania znajduje się kilka przycisków, a pod widokiem przewijania kilka przycisków. Scrollview zajmuje cały środek ekranu.
W tej chwili, gdy lista jest generowana, znajduje się ona pod przyciskami pod scrollview. Chciałabym jednak, żeby zatrzymała się na szczycie. Szukam również, aby zawsze wyświetlać ostatnią linię, a nie nowe informacje zaczynają znikać na dole.
Wiem, że to prawdopodobnie mylące, więc jeśli masz jakieś pytania, daj mi znać.
W tej chwili XML wygląda mniej więcej tak i jest również ułożony w tej kolejności na ekranie.
<Button
android:text="Ok"
android:id="@+id/buttonOk"
android:layout_height="wrap_content"
android:layout_width="75sp"
android:layout_below="@+id/textHoleNumber"
android:layout_alignParentRight="true"></Button>
<ScrollView <-- ***would like this to line up under the OK button***
android:layout_height="wrap_content"
android:id="@+id/scrollView1"
android:layout_width="fill_parent"
android:layout_below="@+id/buttonMinus">
<TextView
android:id="@+id/textScoreCard"
android:layout_height="wrap_content"
android:text="Score card info goes here"
android:textSize="20sp"
android:layout_width="fill_parent"></TextView>
</ScrollView> <-- ***would like this to stay above linear layout***
<LinearLayout
android:layout_width="fill_parent"
android:id="@+id/linearLayout1"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true">
<Button
android:layout_height="wrap_content"
android:layout_width="0dip"
android:layout_weight="1"
android:id="@+id/buttonSave"
android:text="Save"></Button>
<Button
android:id="@+id/buttonReset"
android:layout_height="wrap_content"
android:layout_width="0dip"
android:layout_weight="1"
android:layout_toRightOf="@+id/buttonSave"
android:layout_alignTop="@+id/buttonSave"
android:layout_alignBottom="@+id/buttonSave"
android:text="Reset"></Button>
</LinearLayout>
2 odpowiedzi
Jeśli mówisz o tym, kim myślę, że jesteś, spróbuj dodać margines na dole widoku przewijania i ujemny margines na górze układu liniowego. Na przykład:
<ScrollView android:id="@+id/scrollView1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginBottom="60sp">
<LinearLayout android:id="@+id/linearLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
</LinearLayout>
</ScrollView>
<LinearLayout android:id="@+id/linearLayout2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="-60sp">
</LinearLayout>
Jeśli chodzi o przewijanie do dołu widoku przewijania po dodaniu nowego elementu, spójrz na Jak przewinąć do dołu w ScrollView po uruchomieniu aktywności.
Uwaga: przy założeniu, że widok ScrollView i znajdujący się pod nim LinearLayout są zawarte w pionowym układzie LinearLayout.
Zawsze używaj Scrollview w układzie liniowym i nadaj android:layout_weight="1". Spróbuj następujący przykład to zadziała..
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:background="@null">
<LinearLayout android:id ="@+id/layout_above_scrollview" android:orientation="vertical"
android:layout_width="fill_parent" android:layout_height="fill_parent">
<ScrollView android:id="@id/android:list" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_weight="1">
<LinearLayout android:id ="@+id/layout_above_scrollview" android:orientation="vertical"
android:layout_width="fill_parent" android:layout_height="fill_parent">
// Your components........
</LinearLayout>
</ScrollView>
<LinearLayout android:id="@+id/add_app_done_layout" android:layout_height="wrap_content"
android:layout_width="wrap_content" android:layout_marginTop="5dp"
android:layout_marginLeft="50dp"
android:orientation="horizontal" android:layout_alignParentBottom="true">
<Button android:id="@+id/add_app_done" android:text="Done"
android:layout_width="100dp"
android:textStyle="bold" android:layout_height="wrap_content" />
<Button android:id="@+id/add_app_revert" android:text="Revert"
android:layout_width="100dp" android:layout_marginLeft="5dp"
android:textStyle="bold" android:layout_height="wrap_content" />
</LinearLayout>
</LinearLayout>
Podobne pytania
Powiązane pytania
Nowe pytania
android
Android to mobilny system operacyjny Google, używany do programowania lub tworzenia urządzeń cyfrowych (smartfony, tablety, samochody, telewizory, Wear, Glass, IoT). W przypadku tematów związanych z Androidem użyj tagów specyficznych dla Androida, takich jak android-intent, android-activity, android-adapter itp. W przypadku pytań innych niż programowanie lub programowanie, ale związanych ze strukturą Androida, użyj tego linku: https: // android.stackexchange.com.