2012-05-20 7 views
2

Это мой .xml-файл, в котором я использовал два scrollview, в Input Edittext и onether в выводе TextView. Что здесь не так ... Это не работает в Android-устройстве.Android ScrollView не работает

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

Как это исправить?

Благодаря

<?xml version="1.0" encoding="utf-8"?> 
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 

    <LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="35dp" 
    android:orientation="horizontal" > 

    <Button 
     android:id="@+id/test" 
     android:layout_width="60dp" 
     android:layout_height="38dp" 
     android:text="@string/test" /> 

    <Button 
     android:id="@+id/rdf" 
     android:layout_width="60dp" 
     android:layout_height="38dp" 
     android:text="@string/rdf" /> 

    <Button 
     android:id="@+id/load" 
     android:layout_width="75dp" 
     android:layout_height="38dp" 
     android:text="@string/load" /> 

    <Button 
     android:id="@+id/clear" 
     android:layout_width="60dp" 
     android:layout_height="38dp" 
     android:text="@string/clear" /> 

    <Button 
     android:id="@+id/close" 
     android:layout_width="fill_parent" 
     android:layout_height="38dp" 
     android:text="@string/close" /> 

    </LinearLayout> 

    <ScrollView 
    android:id="@+id/scrollView1" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" > 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" > 

     <EditText 
      android:id="@+id/input" 
      android:layout_width="0dp" 
      android:layout_height="175dp" 
      android:layout_weight="1" 
      android:background="#fff" 
      android:ems="10" 
      android:gravity="top|left" 
      android:textSize="14dp" 
      android:inputType="textMultiLine" > 

      <requestFocus /> 
     </EditText> 
    </LinearLayout> 
    </ScrollView> 

    <Button 
    android:id="@+id/run" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/run" /> 

    <ScrollView 
    android:id="@+id/scrollView2" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" > 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" > 

     <TextView 
      android:id="@+id/output" 
      android:layout_width="match_parent" 
      android:layout_height="225dp" 
      android:background="#fff" 
      android:text="@string/output" 
      android:textColor="#1e90ff" /> 
    </LinearLayout> 
</ScrollView> 

</LinearLayout> 
+0

Почему вы хотите прокручивать текстовое изображение и текст edittext? – amp

+0

@amp .... ну у меня есть кнопка загрузки, которая загружает файл в edittext, и если я выполняю run btn ... результат будет показан в текстовом виде. –

ответ

0

Попробуйте установить layout_weight = 1 и layout_height = 0dp для двух взглядов прокрутки вместо их содержания.

+1

Вторая проблема решена. –

0

Что здесь не так, не работает в Android-устройстве.

Это довольно расплывчато. Каковы были ваши ожидания? Что не работает? Другими словами, пожалуйста, будьте немного более конкретными.

Однако, основываясь на коде макета данной, вот некоторые рекомендации:

  1. Избегайте жестко прописывать размер просмотров. Вы не можете делать предположения о размере экрана с большим разнообразием размеров экрана, плотностей и устройств. Кроме того, даже если вы можете сделать макет красивым в портретном режиме, он, вероятно, даже не будет близок к пейзажу.
  2. Если вы собираетесь поставить только один View в ScrollView, нет необходимости обертывать его в контейнер ViewGroup; просто установите View непосредственно, не вложив его снова и добавив дополнительный уровень сложности в иерархию представлений.
  3. Нет необходимости обертывать TextView или EditText с помощью ScrollView, так как оба вида прокручиваются сами по себе.

Что касается вашего второго вопроса: вы можете запретить Android извлекать все компоненты пользовательского интерфейса, когда осталось небольшое свойство макета, когда клавиатура выскочила. Вам необходимо установить флаг IME_FLAG_NO_EXTRACT_UI в EditText или в xml: android:imeOptions="flagNoExtractUi".

Я действительно хочу отметить, что есть причина, по которой Android имеет это поведение по умолчанию. В большинстве случаев вряд ли имеет смысл заставлять крошечную часть пользовательского интерфейса быть видимой, даже больше, поскольку все, что набирается пользователем, вероятно, действительно имеет значение.

Смежные вопросы