【问题标题】:How to set my scrollView layout height to the top of a fragment如何将我的 scrollView 布局高度设置为片段的顶部
【发布时间】:2016-09-29 19:56:21
【问题描述】:

我有一个应用程序,其中scrollView(其中的相对布局)占据了整个屏幕(fill_parent)。但是,我不想在电话末尾结束,而是希望在底部有一个片段,并让 ScrollView 布局停止在片段的顶部。我认为这可能与高度有关,但无法真正弄清楚代码。请查看我的 imgur 图片以了解我的想法。 Imgur_Image, press here

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


    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent" android:layout_height="match_parent"><![CDATA[


    tools:context="c.timno.smsgsm.MainActivity">



    ]]>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="status?"
        android:id="@+id/skicka"
        android:hint="Status?"

        android:layout_marginTop="38dp"
        android:layout_below="@+id/buttonanvandare"
        android:layout_centerHorizontal="true" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="på"
        android:id="@+id/skickaaon"
        android:layout_marginEnd="36dp"
        android:layout_below="@+id/textViewlarm"
        android:layout_alignEnd="@+id/skicka" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Av"
        android:id="@+id/skickaaoff"

        android:layout_below="@+id/textViewlarm"
        android:layout_toEndOf="@+id/skickarela1" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Relä 1"
        android:id="@+id/skickarela1"
        android:layout_alignTop="@+id/skickarela2"
        android:layout_alignStart="@+id/skickaaon" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Relä 2"
        android:id="@+id/skickarela2"
        android:layout_below="@+id/textView"
        android:layout_toEndOf="@+id/skickarela1" />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Aktivera"
        android:gravity="center"
        android:textSize="29dp"
        android:id="@+id/textView"
        android:layout_below="@+id/skickaaon"
        android:layout_alignParentStart="true" />


    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"

        android:text="Larm"
        android:textSize="29dp"
        android:id="@+id/textViewlarm"
        android:layout_below="@+id/skicka"
        android:layout_alignParentStart="true" />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="Avaktivera"
        android:textSize="29dp"
        android:id="@+id/textView3"
        android:autoText="false"
        android:layout_below="@+id/textView"
        android:layout_alignEnd="@+id/buttoninstallator"
        android:layout_marginTop="46dp" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Relä 1"
        android:id="@+id/skickatrela1off"
        android:layout_below="@+id/textView3"
        android:layout_toStartOf="@+id/skickatrela2off" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Relä 2"
        android:id="@+id/skickatrela2off"
        android:layout_alignTop="@+id/skickatrela1off"
        android:layout_alignStart="@+id/skickarela2" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Användare"
        android:id="@+id/buttonanvandare"
        android:layout_alignParentStart="true"
        android:layout_toStartOf="@+id/skickaaoff" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Installation"
        android:id="@+id/buttoninstallator"
        android:layout_alignParentTop="true"
        android:layout_alignParentEnd="true"
        android:layout_toEndOf="@+id/buttonanvandare" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:text="status?"
        android:id="@+id/statustxt"
        android:layout_alignParentBottom="true"
        android:layout_alignParentStart="true" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:text="aon"
        android:id="@+id/aon"
        android:layout_alignParentStart="true"
        android:layout_alignParentBottom="true" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:text="aoff"
        android:id="@+id/aoff"
        android:layout_alignParentStart="true"
        android:layout_below="@+id/statustxt" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:text="on*1*"
        android:id="@+id/rela1txxt"
        android:layout_alignParentBottom="true"
        android:layout_alignParentStart="true" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:text="On*2*"
        android:id="@+id/rela2onn"
        android:layout_alignParentBottom="true"
        android:layout_alignParentStart="true" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:text="off*2*"
        android:id="@+id/rela2offtxt"
        android:layout_alignParentBottom="true"
        android:layout_alignParentStart="true" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:text="off*1*"
        android:id="@+id/offrela1txt"
        android:layout_alignParentBottom="true"
        android:layout_alignParentStart="true" />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="Värmestyrning"
        android:textSize="33dp"
        android:id="@+id/textView8"
        android:layout_below="@+id/skickatrela1off"
        android:layout_marginTop="25dp" />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="Komfortvärme"
        android:textSize="29dp"
        android:id="@+id/textView9"
        android:layout_below="@+id/textView8" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Heaton"
        android:id="@+id/btnHeaton"
        android:layout_below="@+id/textView9"
        android:layout_alignEnd="@+id/skickatrela1off" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Heatoff"
        android:id="@+id/btnHeatoff"
        android:layout_below="@+id/textView9"
        android:layout_alignStart="@+id/skickatrela2off" />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="Underhållsvärme"
        android:textSize="29dp"
        android:id="@+id/textView10"
        android:layout_below="@+id/btnHeaton"
        android:layout_centerHorizontal="true" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Termon"
        android:id="@+id/btnTermon"
        android:layout_below="@+id/textView10"
        android:layout_toStartOf="@+id/btnHeatoff" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Termoff"
        android:id="@+id/btnTermoff"
        android:layout_alignBottom="@+id/btnTermon"
        android:layout_toEndOf="@+id/btnTermon" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:text="Heaton"
        android:id="@+id/txtHeaton"
        android:layout_alignTop="@+id/statustxt"
        android:layout_alignEnd="@+id/statustxt" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:text="Heatoff"
        android:id="@+id/txtHeatoff"
        android:layout_alignBottom="@+id/statustxt"
        android:layout_alignParentStart="true" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:text="Termon"
        android:id="@+id/txtTermon"
        android:layout_alignBaseline="@+id/aoff"
        android:layout_alignBottom="@+id/aoff"
        android:layout_alignEnd="@+id/statustxt" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:text="Termoff"
        android:id="@+id/txtTermoff"
        android:layout_alignTop="@+id/statustxt"
        android:layout_alignEnd="@+id/txtHeatoff" />

        <fragment
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:name="c.timno.smsgsm20.SecondFragment"
            android:id="@+id/fragmentsms"
            android:layout_below="@+id/textView8"
            android:layout_alignParentStart="true"
            tools:layout="@layout/second_layout"
            android:layout_above="@+id/textView10" />


    </RelativeLayout>
</ScrollView>

【问题讨论】:

    标签: android xml android-layout android-studio android-fragments


    【解决方案1】:

    我建议将ScrollViewFragment 放在一个新的顶级元素中,然后在该元素中使用相应的方法来调整每个元素的大小和位置。

    例如,使用RelativeLayout

    <RelativeLayout
      xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      ...>
       <ScrollView
         android:id="@+id/scrollview"
         android:layout_above="@+id/frag"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         ...>
           <RelativeLayout
             android:paddingBottom="50dp"
             ...>
              ...
           </RelativeLayout>
         ...
       </ScrollView>
       <Fragment
          android:id="@+id/frag"
          android:layout_alignParentBottom="true"
          android:layout_width="match_parent"
          android:layout_height="50dp"
          ...>
         ...
       </Fragment>
    </RelativeLayout>
    

    (请注意,ScrollView 内的RelativeLayout 底部的填充与Fragment 的高度相匹配,因此ScrollView 的内容不会隐藏在Fragment 后面)

    您也可以使用LinearLayout 作为父元素,属性为android:orientation="vertical",并且ScrollViewFragment 分别获得一个适当的layout_weight 属性,但这并不像恕我直言,所以如果你愿意,我会留给你。

    【讨论】:

    • 很高兴能提供帮助。 :)
    【解决方案2】:
    <ScrollView>
    
     <RelativeLayout>
        //main content
     </RelativeLayout>
      <FrameLayout android:alignParentBottom="true"/>  load fragment here dynamically(or not)
    
    </ScrollView>
    

    这对我有用。也检查this question

    【讨论】:

      猜你喜欢
      • 2014-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-06
      • 1970-01-01
      • 1970-01-01
      • 2012-01-09
      相关资源
      最近更新 更多