2016-04-13 22 views
0

私は相対レイアウトを使用してレイアウトを作成しましたが、それは非常に長いことが判明しました。代わりにListViewを作成したいのですが、ListViewでこれを行うのはかなり複雑です。相対的なレイアウトを縦横にスクロールする方法は?

私は何とかAndroid OSが画面の上下を左右に調整できることを知っています。

これまでのところ、現在私が行っていることは、UIコンテンツが画面よりも長いため、スクロールビュー内に相対レイアウトを挿入して、下方向にスクロールすることを期待しています。私はあなたが非常に多くのアプリのようにスクロールダウンしたい。

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

<ScrollView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingStart="@dimen/activity_horizontal_margin" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:fillViewport="true" 
    tools:context=".TaskActivity"> 

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical"> 

     <android.support.design.widget.TextInputLayout 
      android:id="@+id/textinputlayout_task_location" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_alignParentTop="true" 
      android:layout_marginTop="24dp" 
      android:paddingEnd="@dimen/activity_horizontal_margin" 
      android:paddingRight="@dimen/activity_horizontal_margin"> 

      <EditText 
       android:id="@+id/edittext_location" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:singleLine="true" 
       android:padding="8dp" 
       android:hint="@string/edittext_task_location_hint"/> 

     </android.support.design.widget.TextInputLayout> 

     <android.support.design.widget.TextInputLayout 
      android:id="@+id/textinputlayout_task_title" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_below="@id/textinputlayout_task_location" 
      android:paddingTop="16dp" 
      android:paddingEnd="@dimen/activity_horizontal_margin" 
      android:paddingRight="@dimen/activity_horizontal_margin"> 

      <EditText 
       android:id="@+id/edittext_task" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:singleLine="true" 
       android:textSize="32sp" 
       android:padding="8dp" 
       android:hint="@string/edittext_task_title_hint"/> 

     </android.support.design.widget.TextInputLayout> 

     <android.support.design.widget.TextInputLayout 
      android:id="@+id/textinputlayout_task_description" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_below="@id/textinputlayout_task_title" 
      android:layout_above="@+id/linearlayout_task_buttons" 
      android:paddingEnd="@dimen/activity_horizontal_margin" 
      android:paddingRight="@dimen/activity_horizontal_margin"> 

      <EditText 
       android:id="@+id/edittext_todo" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:gravity="top" 
       android:hint="@string/edittext_task_content_hint"/> 

     </android.support.design.widget.TextInputLayout> 

     <LinearLayout 
      android:id="@id/linearlayout_task_buttons" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_above="@+id/simpledividerview_schedule" 
      android:orientation="horizontal"> 

      <ImageButton 
       android:id="@+id/imagebutton_insert_note" 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:src="@drawable/ic_content_add_black" 
       android:contentDescription="@string/content_description_choose_note" 
       style="?android:attr/borderlessButtonStyle" /> 

      <ImageButton 
       android:id="@+id/imagebutton_expand_note" 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:src="@drawable/ic_open_in_new_black_24dp" 
       android:contentDescription="@string/content_description_expand_note" 
       style="?android:attr/borderlessButtonStyle" /> 

     </LinearLayout> 

     <com.neonwarge.android.notifire.utils.view.SimpleDividerView 
      android:id="@id/simpledividerview_schedule" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_above="@+id/linearlayout_task_start_date" 
      app:showHeaderText="true" 
      app:headerText="@string/header_schedule"/> 

     <LinearLayout 
      android:id="@id/linearlayout_task_start_date" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_above="@+id/linearlayout_task_end_date" 
      android:paddingBottom="4dp" 
      android:paddingTop="4dp" 
      android:layout_marginEnd="@dimen/activity_horizontal_margin" 
      android:layout_marginRight="@dimen/activity_horizontal_margin" 
      android:orientation="horizontal"> 

      <TextView 
       android:id="@+id/textview_start_date" 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:layout_weight="8" 
       android:text="@string/textview_start_date" 
       style="@android:style/Widget.Holo.Light.Spinner" /> 

      <android.support.v7.widget.SwitchCompat 
       android:id="@+id/switchcompat_alarm_on_start" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:textOff="@string/switchcompat_off" 
       android:textOn="@string/switchcompat_on" 
       android:background="@android:color/transparent" /> 

     </LinearLayout> 

     <LinearLayout 
      android:id="@id/linearlayout_task_end_date" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_above="@+id/simpledividerview_reminder" 
      android:paddingBottom="4dp" 
      android:paddingTop="4dp" 
      android:layout_marginEnd="@dimen/activity_horizontal_margin" 
      android:layout_marginRight="@dimen/activity_horizontal_margin" 
      android:orientation="horizontal"> 

      <TextView 
       android:id="@+id/textview_end_date" 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:layout_weight="8" 
       android:text="@string/textview_end_date" 
       style="@android:style/Widget.Holo.Light.Spinner" /> 

      <android.support.v7.widget.SwitchCompat 
       android:id="@+id/switchcompat_alarm_on_end" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:textOff="@string/switchcompat_off" 
       android:textOn="@string/switchcompat_on" 
       android:background="@android:color/transparent" /> 

     </LinearLayout> 

     <com.neonwarge.android.notifire.utils.view.SimpleDividerView 
      android:id="@id/simpledividerview_reminder" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_above="@+id/linearlayout_task_alarm_before_start_date" 
      app:showHeaderText="true" 
      app:headerText="@string/header_reminder"/> 

     <LinearLayout 
      android:id="@+id/linearlayout_task_alarm_before_start_date" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_above="@+id/linearlayout_task_before_end_date" 
      android:paddingBottom="4dp" 
      android:paddingTop="4dp" 
      android:layout_marginEnd="@dimen/activity_horizontal_margin" 
      android:layout_marginRight="@dimen/activity_horizontal_margin" 
      android:orientation="horizontal"> 

      <TextView 
       android:id="@+id/textview_before_start_date" 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:layout_weight="8" 
       android:text="@string/textview_alarm_before_start_date" 
       style="@android:style/Widget.Holo.Light.Spinner"/> 

      <android.support.v7.widget.SwitchCompat 
       android:id="@+id/switchcompat_alarm_before_on_start" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:textOff="@string/switchcompat_off" 
       android:textOn="@string/switchcompat_on" 
       android:background="@android:color/transparent" /> 

     </LinearLayout> 

     <LinearLayout 
      android:id="@id/linearlayout_task_before_end_date" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_above="@+id/simpledividerview_settings" 
      android:paddingBottom="4dp" 
      android:paddingTop="4dp" 
      android:layout_marginEnd="@dimen/activity_horizontal_margin" 
      android:layout_marginRight="@dimen/activity_horizontal_margin" 
      android:orientation="horizontal"> 

      <TextView 
       android:id="@+id/textview_before_end_date" 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:layout_weight="8" 
       android:text="@string/textview_alarm_before_end_date" 
       style="@android:style/Widget.Holo.Light.Spinner" /> 

      <android.support.v7.widget.SwitchCompat 
       android:id="@+id/switchcompat_before_alarm_on_end" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:textOff="@string/switchcompat_off" 
       android:textOn="@string/switchcompat_on" 
       android:background="@android:color/transparent" /> 

     </LinearLayout> 

     <com.neonwarge.android.notifire.utils.view.SimpleDividerView 
      android:id="@id/simpledividerview_settings" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_above="@+id/linearlayout_task_show_notification" 
      app:showHeaderText="true" 
      app:headerText="@string/header_reminder"/> 

     <LinearLayout 
      android:id="@id/linearlayout_task_show_notification" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_alignParentBottom="true" 
      android:paddingBottom="4dp" 
      android:paddingTop="4dp" 
      android:layout_marginEnd="@dimen/activity_horizontal_margin" 
      android:layout_marginRight="@dimen/activity_horizontal_margin" 
      android:orientation="horizontal"> 

      <android.support.design.widget.TextInputLayout 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:layout_weight="8"> 

       <TextView 
        android:id="@+id/textview_task_show_notifications" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" 
        android:layout_weight="8" 
        android:text="@string/textview_task_alarm_sound" /> 

      </android.support.design.widget.TextInputLayout> 

      <android.support.v7.widget.SwitchCompat 
       android:id="@+id/switchcompat_task_show_notifications" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:textOff="@string/switchcompat_off" 
       android:textOn="@string/switchcompat_on" 
       android:background="@android:color/transparent" /> 

     </LinearLayout> 


    </RelativeLayout> 
</ScrollView> 

これで問題がある、私は自分の携帯電話上でそれを表示する場合、その:

は、ここに私のコードです。レイアウトは画面に合わせて押し縮められます。私はこれが好きではない。私はスクロールできる必要があります。

スクロールビュー内でスクロールするために、相対レイアウトを非常に長いコンテンツにすることはできません。

コードベースでは、何が問題なのでしょうか?

ありがとうございます!

答えて

1

あなたの問題はこれで使用しています。これにより、すべてが1つの画面に収まるようになります。

RelativeLayoutを垂直方向のLinearLayoutに置き換え、上から下に順番にレイアウトする必要があります。

0

あなたのScrollViewはマスターレイアウト(ただし100%ではありません)であるべきではないと思います。マスターレイアウトはレイアウト(RelativeLayoutまたはMatch_parent幅のLinearLAyout、wrap_contentの高さ)でなければなりません。

水平スクロール(Source)について:ScrollViewは、垂直スクロールをサポート

。あなたが画面の下部に、このビューを固定するためにOSを言っている

android:layout_alignParentBottom="true" 

、およびいくつかのビューは、このいずれかの上に配置されている:水平方向のスクロールの場合は、HorizontalScrollView

0

RelativeLayoutにはを設定してください。

関連する問題