2013-06-27 3 views
6

Итак, у меня есть ScrollView с LinearLayout внутри него. Кажется, что, когда я пытаюсь прокрутить до нижней части моей линейной линии, нижняя огибающая ~ 5 обрезается (т.е. нижнее поле) Я думаю, что это может иметь какое-то отношение к моему прайс-листу на основе линейки llayloutout 5dip?(Android) ScrollView не будет прокручиваться до конца моего LinearLayout

Вот activity_create_account.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:layout_gravity="top" 
android:background="@drawable/grey" 
android:orientation="vertical" 
android:padding="0dp" 
tools:context=".Login" > 

<LinearLayout 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:weightSum="100" 
android:orientation="vertical"> 

<!-- BEGIN HEADER --> 
<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentTop="true" 
    android:background="@drawable/titlebar" 
    android:orientation="horizontal" 
    android:padding="8dip" > 
    <TextView 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center" 
     android:padding="0dp" 
     android:text="create account" 
     android:textColor="#FFFFFF" 
     android:textSize="32sp" 
     android:textStyle="bold" 
     android:typeface="sans" /> 
</LinearLayout> 
<!-- END HEADER --> 

<!-- BEGIN BODY --> 

<ScrollView 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_gravity="top" 
    android:orientation="vertical"> 

<LinearLayout 
    android:id="@+id/innerLinearLayout" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_margin="10dip" 
    android:background="@drawable/rounded_white" 
    android:orientation="vertical" 
    android:padding="5dip" > 

    <EditText 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:inputType="textEmailAddress" 
      android:ems="10" 
      android:id="@+id/etCreateEmail" 
      android:hint="Email" 
      android:layout_weight="1" 
      android:paddingTop="8dip" 
      android:paddingBottom="8dip" 
      android:paddingRight="8dip" 
      android:paddingLeft="8dip" 
      android:layout_marginBottom="4dip" 
      android:layout_marginTop="5dip"/> 
    <EditText 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:inputType="textEmailAddress" 
      android:ems="10" 
      android:id="@+id/etCreateEmail" 
      android:hint="Email" 
      android:layout_weight="1" 
      android:paddingTop="8dip" 
      android:paddingBottom="8dip" 
      android:paddingRight="8dip" 
      android:paddingLeft="8dip" 
      android:layout_marginBottom="4dip" 
      android:layout_marginTop="5dip"/> 
    <EditText 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:inputType="textEmailAddress" 
      android:ems="10" 
      android:id="@+id/etCreateEmail" 
      android:hint="Email" 
      android:layout_weight="1" 
      android:paddingTop="8dip" 
      android:paddingBottom="8dip" 
      android:paddingRight="8dip" 
      android:paddingLeft="8dip" 
      android:layout_marginBottom="4dip" 
      android:layout_marginTop="5dip"/> 
    <EditText 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:inputType="textEmailAddress" 
      android:ems="10" 
      android:id="@+id/etCreateEmail" 
      android:hint="Email" 
      android:layout_weight="1" 
      android:paddingTop="8dip" 
      android:paddingBottom="8dip" 
      android:paddingRight="8dip" 
      android:paddingLeft="8dip" 
      android:layout_marginBottom="4dip" 
      android:layout_marginTop="5dip"/> 
    <EditText 
     android:id="@+id/etChooseUsername" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginBottom="4dip" 
     android:layout_weight="1" 
     android:ems="10" 
     android:hint="Choose a username" 
     android:inputType="text" 
     android:paddingBottom="8dip" 
     android:paddingLeft="8dip" 
     android:paddingRight="8dip" 
     android:paddingTop="8dip" /> 
    <EditText 
     android:id="@+id/etChoosePassword" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginBottom="4dip" 
     android:layout_weight="1" 
     android:ems="10" 
     android:hint="Choose a password" 
     android:inputType="textPassword" 
     android:paddingBottom="8dip" 
     android:paddingLeft="8dip" 
     android:paddingRight="8dip" 
     android:paddingTop="8dip" /> 
    <EditText 
     android:id="@+id/etRetypePassword" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginBottom="4dip" 
     android:layout_weight="1" 
     android:ems="10" 
     android:hint="Re-type password" 
     android:inputType="textPassword" 
     android:paddingBottom="8dip" 
     android:paddingLeft="8dip" 
     android:paddingRight="8dip" 
     android:paddingTop="8dip" /> 

    <Button 
     android:id="@+id/bCreateAccountConfirm" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_centerVertical="true" 
     android:layout_weight="1" 
     android:background="@drawable/button_selector" 
     android:padding="0dip" 
     android:text="Create Account" 
     android:textColor="#ffffff" 
     android:textStyle="bold" 
     android:typeface="sans" /> 
</LinearLayout> 
</ScrollView> 
<!-- END BODY --> 

Вот как это выглядит, когда я пытаюсь прокрутить весь путь вниз (там должен быть тонкий участок белого под кнопкой & затем тонкий серая серая маржа) enter image description here

+1

вместо 'android: layout_margin =" 10dip "' на 'android: id =" @ + id/innerLinearLayout "', поместите 'android: padding =" 10dip "' в 'ScrollView' – bogdan

+0

@bogdan, когда Я накладываю прописку на свой ScrollView, он по-прежнему отключает нижнюю часть моей внутренней компоновки (и оставляет в нижней части экрана неприглядную серию серого цвета шириной 10dip, независимо от того, где она прокручивается). –

+0

Возможно, я немного ошибся, забудьте об изменениях, которые я сказал о отладке 10dp для scrollview, sry. Вы хотите, чтобы кнопка «создать учетную запись» имела небольшой запас внизу, поэтому поставьте 'android: layout_marginBottom =« 10dp »' на 'android: id =" @ + id/bCreateAccountConfirm "' – bogdan

ответ

8

В своем ScrollView добавьте padding_bottom в некоторые 10dp. Это сработает.

Остальное изображение, расположенное ниже горизонтального обзора, может быть наложено над этим горизонтальным видом. В этом случае

  1. Добавить идентификатор в HorizontalView id="@+id/horizontalView"
  2. Добавить below="@+id/horizontalView" в представлении ниже горизонтальной зрения.
+0

Большое спасибо Naresh :) –

+0

Что вы подразумеваете под «HorizontalView»? – rmtheis

+0

Возможно, это было изменено на «HorizontalScrollView». Я полагаю, –

3

Вы можете установить marginBottom на свой scrollview

<ScrollView 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_gravity="top" 
    android:layout_marginBottom="10dp" 
    android:orientation="vertical"> 
+2

У меня была аналогичная проблема, и это было связано с разницей текста в прокрутке. Удаление поля из текстового поля и добавление его в прокрутку означало, что весь текст был видимым, а прокрутка работала так, как ожидалось.В моем случае у меня была маржа 20dp, поэтому вся строка отсутствовала, поэтому я удалил ее с нижнего поля textview и добавил в прокрутку. – WallyHale

+0

В моем случае причина заключалась в том, что TableLayout использовал разделители с высотой 2 дп. У меня было 30 строк, поэтому мне пришлось добавить marginBottom 60dp, и он прокручивался точно до конца, включая последнюю строку – maximus

7

Я понимаю, что этот вопрос немного стар, но ради тех, кто найдет это через Google, я попытаюсь пролить свет.

Кажется, что общий объект ScrollView не очень хорошо работает при использовании внутри макета с другими братьями и сестрами. Таким образом, Google создал NestedScrollView. Из документации,

NestedScrollView похож на ScrollView, но поддерживает как родительскую, так и дочернюю версию прокрутки в обеих новых и старых версиях Android.

У меня была аналогичная проблема с тем, что поставил этот вопрос, и использование NestedScrollView устранило отсечение в нижней части моего первоначального ScrollView.

+0

Спасибо! Сэкономил мне много времени и работал как шарм –