4

Мне нужно сделать вид прокрутки в относительной компоновке.ScrollView внутри RelativeLayout

Когда я добавил Scrollview это результат http://postimg.org/image/6abxth299/, где компоненты только занимают половину экрана, и когда этот экран открывается клавиатура появляется по умолчанию

<?xml version="1.0" encoding="utf-8"?> 
<ScrollView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:scrollbars="vertical" > 
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:tools="http://schemas.android.com/tools" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:paddingBottom="@dimen/activity_vertical_margin" 
     android:paddingLeft="@dimen/activity_horizontal_margin" 
     android:paddingRight="@dimen/activity_horizontal_margin" 
     android:paddingTop="@dimen/activity_vertical_margin" 
     tools:context=".MainActivity" 
     android:layout_centerHorizontal="true" 
     android:id="@+id/data_entry_layout"> 

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="Post Title" 
       android:id="@+id/post_title" 
       android:layout_alignBaseline="@+id/post_title_input" 
       android:layout_alignBottom="@+id/post_title_input" 
       android:layout_alignParentLeft="true" 
       android:layout_alignParentStart="true" 
       android:textSize="26px"/> 

      <EditText 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:id="@+id/post_title_input" 
       android:layout_alignParentRight="true" 
       android:layout_alignParentEnd="true" 
       android:layout_toRightOf="@+id/post_title" 
       android:layout_toEndOf="@+id/post_title" 
       android:inputType="textCapSentences"/> 

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="Post Description" 
       android:id="@+id/post_description" 
       android:layout_below="@+id/post_title_input" 
       android:layout_alignParentLeft="true" 
       android:layout_alignParentStart="true" 
       android:layout_marginTop="39dp" 
       android:textSize="26px"/> 

      <EditText 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:inputType="textMultiLine|textCapSentences" 
       android:ems="10" 
       android:id="@+id/editText" 
       android:layout_marginTop="16dp" 
       android:layout_below="@+id/post_description" 
       android:layout_alignParentLeft="true" 
       android:layout_alignParentStart="true"/> 

      <ImageButton 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:id="@+id/imageButton1" 
       android:layout_below="@+id/editText" 
       android:layout_alignParentLeft="true" 
       android:layout_alignParentStart="true" 
       android:baselineAlignBottom="false" 
       android:contextClickable="true" 
       android:src="@drawable/image_button_icon" 
       android:onClick="galleryIntent"/> 

      <Button 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="Cancel" 
       android:id="@+id/cancel" 
       android:layout_alignParentBottom="true" 
       android:layout_alignParentLeft="true" 
       android:layout_alignParentStart="true" 
       android:layout_below="@id/imageButton1" 

       /> 

      <Button 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="Submit" 
       android:id="@+id/submit" 
       android:layout_alignTop="@+id/cancel" 
       android:layout_alignParentRight="true" 
       android:layout_alignParentEnd="true" 
       android:layout_below="@id/imageButton1"/> 

    </RelativeLayout> 
</ScrollView> 
+0

Никогда не используйте 'match_parent' в высоту до RelativeLayout, когда внутри ScrollView, измените его на 'wrap_content'. –

+0

изменил его, однако компоненты по-прежнему занимают половину экрана – cgeekmt

+0

что вам нужно? –

ответ

0

Попробуйте добавить ниже вашего AndroidManifest в вашей этой деятельности для удаления клавиатуры появляется по умолчанию

android:windowSoftInputMode="stateAlwaysHidden|adjustResize" 

и использовать android:layout_height="wrap_content" для Scrollview, sugesting использовать LinearLayout с вертикальной ориентации макета для этого вид использования.

+0

Вы пробовали это? @cgeekmt –

+0

Да, это сработало для клавиатуры. Благодаря! – cgeekmt

1

Высота первого dirsct child scrollview, будь то относительный или линейный макет, должен быть оберткой и не соответствовать родительскому. Кроме того, внутренние дочерние элементы должны иметь определенный вес или высоту и не соответствовать родительскому, как вы делали для imageButton.

+0

изменил высоту на 430 пикселей, и она сработала. Однако я считаю, что он не будет реагировать на другие устройства правильно? (т. е. высота не будет соответствующим образом изменяться)? – cgeekmt

+0

какая высота вы изменили на 430px? –

+0

кнопки изображения cgeekmt

0

Я думаю, что ScrollView не работает внутри Relativelayout. Лучше использовать LinearLayout.

0

Попробуйте это ...

<?xml version="1.0" encoding="utf-8"?> 

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fillViewport="true"> 

    <RelativeLayout 
     android:id="@+id/data_entry_layout" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_centerHorizontal="true" 
     android:paddingBottom="@dimen/activity_vertical_margin" 
     android:paddingLeft="@dimen/activity_horizontal_margin" 
     android:paddingRight="@dimen/activity_horizontal_margin" 
     android:paddingTop="@dimen/activity_vertical_margin"> 
     <RelativeLayout 
      android:id="@+id/Rel12345" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content"> 

     <TextView 
      android:id="@+id/post_title" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignBaseline="@+id/post_title_input" 
      android:layout_alignBottom="@+id/post_title_input" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentStart="true" 
      android:text="Post Title" 
      android:textSize="26px" /> 

     <EditText 
      android:id="@+id/post_title_input" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_alignParentEnd="true" 
      android:layout_alignParentRight="true" 
      android:layout_toEndOf="@+id/post_title" 
      android:layout_toRightOf="@+id/post_title" 
      android:inputType="textCapSentences" /> 

     <TextView 
      android:id="@+id/post_description" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentStart="true" 
      android:layout_below="@+id/post_title_input" 
      android:layout_marginTop="39dp" 
      android:text="Post Description" 
      android:textSize="26px" /> 

     <EditText 
      android:id="@+id/editText" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentStart="true" 
      android:layout_below="@+id/post_description" 
      android:layout_marginTop="16dp" 
      android:ems="10" 
      android:inputType="textMultiLine|textCapSentences" /> 

     <ImageButton 
      android:id="@+id/imageButton1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentStart="true" 
      android:layout_below="@+id/editText" 
      android:baselineAlignBottom="false" 
      android:contextClickable="true" 
      android:onClick="galleryIntent" 
      /> 
     </RelativeLayout> 

     <RelativeLayout 
      android:id="@+id/Rel1234" 
      android:layout_below="@id/Rel12345" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentBottom="true"> 

      <Button 
       android:id="@+id/cancel" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignParentBottom="true" 
       android:layout_alignParentLeft="true" 
       android:layout_alignParentStart="true" 
       android:text="Cancel"/> 

      <Button 
       android:id="@+id/submit" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignParentEnd="true" 
       android:layout_alignParentRight="true" 
       android:layout_alignTop="@+id/cancel" 
       android:text="Submit" /> 
     </RelativeLayout> 
    </RelativeLayout> 
</ScrollView> 

и попробуйте добавить ниже ваших AndroidManifes для удаления клавиатуры приходят по умолчанию

android:windowSoftInputMode="stateAlwaysHidden|adjustResize" 
+0

@cgeekmt это проверенное полное решение вашей проблемы –

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