минимальная высота fill_parent и высота wrap_content в ScrollView? (или просто приложение электронной почты составляет код макета) - PullRequest
24 голосов
/ 07 октября 2010

Вопрос Если у меня есть следующее:

<ScrollView android:layout_width="fill_parent" android:layout_height="fill_parent">
    <LinearLayout android:layout_width="fill_parent" android:layout_height="?" android:orientation="vertical">
        <EditText android:layout_width="fill_parent" android:layout_height="?" android:hint="Subject" android:id="@+id/subject" />
        <EditText android:layout_width="fill_parent" android:layout_height="?" android:id="@+id/body" />
    </LinearLayout>
</ScrollView>

Как я могу получить тело (второй EditText), чтобы заполнить остальную часть экрана, но по-прежнему иметь пинок прокрутки вкогда содержимое тела слишком длинное?Как height="wrap_content" и minHeight="fill_parent"

layout_height="fill_parent", похоже, ничего не делают, если вы помещаете их в представление прокрутки

Рабочий пример того, что я хочу, - это приложение электронной почтыОкно составления

Я пробовал это , и элементы EditText действуют так, как будто они wrap_content, и заполнение не происходит.Просто прокрутите, если наберете достаточно

<ScrollView android:layout_width="fill_parent" android:layout_height="fill_parent">
    <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical">
        <EditText android:layout_width="fill_parent" android:layout_height="fill_parent" layout_weight="1" android:hint="Subject" android:id="@+id/subject" />
        <EditText android:layout_width="fill_parent" android:layout_height="fill_parent" layout_weight="1" android:id="@+id/body" />
    </LinearLayout>
</ScrollView>

Ответы [ 4 ]

70 голосов
/ 08 октября 2010

Я натолкнулся на ссылку на исходный код почтового приложения в моем принятом ответе на другой вопрос . Ответ прост! Добавьте android:fillViewport="true" к <ScrollView...> и добавьте android:layout_weight="1.0" к представлению, которое вы хотите занять все доступное пространство. объяснил в этом blogspot

5 голосов
/ 13 сентября 2014

Как упомянуто выше, правильный способ - использовать атрибут android: fillViewport = "true" .

Есть пример, когда изображение будет расположено в виде прокрутки.:

  <ScrollView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:fillViewport="true">
    <LinearLayout
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
      android:fillViewport="true"
      android:orientation="vertical">

      <LinearLayout
        android:layout_height="fill_parent"
        android:layout_width="wrap_content"
        android:orientation="vertical"
        android:layout_weight="1">
        <TextView
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:text="test"/>
      </LinearLayout>


      <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:background="@color/red">
        <ImageView
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:adjustViewBounds="true"
          android:src="@drawable/about_us_image_1_land"
          style="@style/layout_marginTop20"/>
      </LinearLayout>
    </LinearLayout>
   </ScrollView>
0 голосов
/ 07 января 2013

после звонка
AlertDialog dialog = builder.show ();

, затем позвоните
fixScrollViewHeight (Scrollview);

private void fixScrollViewHeight (ScrollView scrollView) {
int screenHeight = activity.getWindowManager (). getDefaultDisplay (). getHeight ();
LayoutParams lp = scrollView.getLayoutParams ();
lp.height = screenHeight / 3;
scrollView.setLayoutParams (LP);
}

0 голосов
/ 07 октября 2010

Почему бы вам не сделать ScrollView как fill_parent, а A и B как wrap_content?Единственное, что вам нужно, это то, что ваш ScrollView умещается на экране.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...