带有Scrollview的Android线性布局分屏

时间:2014-11-27 10:20:06

标签: android split scrollview android-linearlayout

以下是我的布局

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/content"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="0.5"
        android:layout_gravity="top"
        android:background="#FFFFFF" >

 <ScrollView
    android:layout_width="0dp"
    android:layout_height="match_parent"
    android:layout_weight="0.5"
    android:gravity="center_horizontal"
        android:orientation="vertical"
        android:background="#ffffff"
        android:layout_marginLeft="15dp"
        android:layout_marginRight="15dp">

 <LinearLayout
     android:layout_width="0dip"
     android:layout_height="match_parent"
     android:background="#F4F2F2"
     android:layout_weight="0.5"
     android:layout_gravity="top"
     android:orientation="vertical" >

 <TextView
            android:id="@+id/textView2"
            android:layout_width="50dip"
            android:layout_height="wrap_content"
            android:layout_marginTop="10sp"
            android:gravity="left"
            android:text="Notes:"
            android:layout_marginLeft="50sp"
            android:layout_marginBottom="5sp"
            android:textSize="15sp"
            android:textColor="#000000" />

   <EditText
            android:id="@+id/notetext"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ems="10" 
            android:textColor="#000000"
            android:layout_marginLeft="50sp"
            android:layout_marginRight="50sp"
            android:background="#ffffff">
        </EditText>

      <ImageView
          android:id="@+id/mImageView"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:layout_marginTop="20sp"
          android:src="@drawable/picframe" android:contentDescription="TODO"/>

      </LinearLayout>

 </ScrollView>

<LinearLayout
     android:layout_width="0dip"
     android:layout_height="match_parent"
     android:background="#FFFFFF"
     android:layout_weight="0.5"
     android:orientation="vertical" >

 <FrameLayout
    android:id="@+id/frame"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
</FrameLayout>

    </LinearLayout>    

</LinearLayout>

基本上我有3个线性布局 第一个是整个屏幕的大小 另外两个在第一个内部并将屏幕分成两个 右侧布局显示一个工作正常的位图 左侧布局显示备注框

这一切都运行正常,但我想让左侧可滚动,所以如果你输入的音符超过屏幕的高度,你可以继续前进并向下滚动以查看其余部分

问题是在我按上面添加scrollview之前一切正常

备注编辑框和标签消失,无法看到 如果我删除滚动视图,他们会回来

我出错的任何想法? 一如往常任何帮助赞赏

标记

4 个答案:

答案 0 :(得分:0)

这些是您在xml中需要进行的更改 即从滚动视图中删除背景颜色并将线性布局背景移动到scrollview并从线性布局中移除布局权重并将宽度设置为match_parent

<ScrollView
    android:layout_width="0dp"
    android:layout_height="match_parent"
    android:layout_weight="0.5"
    android:background="#F4F2F2"
        android:layout_marginLeft="15dp"
        android:layout_marginRight="15dp">

 <LinearLayout
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:layout_gravity="top"
     android:orientation="vertical" >

答案 1 :(得分:0)

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/content"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="top"
    android:layout_weight="0.5"
    android:baselineAligned="false"
    android:background="#FFFFFF" >

    <ScrollView
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_marginLeft="15dp"
        android:layout_marginRight="15dp"
        android:layout_weight="0.5"
        android:background="#ffffff"
        android:fillViewport="true"
        android:gravity="center_horizontal"
        android:orientation="vertical" >

        <LinearLayout
            android:layout_width="0dip"
            android:layout_height="wrap_content"
            android:layout_gravity="top"
            android:layout_weight="0.5"
            android:background="#F4F2F2"
            android:orientation="vertical" >

            <TextView
                android:id="@+id/textView2"
                android:layout_width="50dip"
                android:layout_height="wrap_content"
                android:layout_marginBottom="5sp"
                android:layout_marginLeft="50sp"
                android:layout_marginTop="10sp"
                android:gravity="left"
                android:text="Notes:"
                android:textColor="#000000"
                android:textSize="15sp" />

            <EditText
                android:id="@+id/notetext"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="50sp"
                android:layout_marginRight="50sp"
                android:background="#ffffff"
                android:ems="10"
                android:textColor="#000000" >
            </EditText>

            <ImageView
                android:id="@+id/mImageView"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="20sp"
                android:contentDescription="TODO"
                android:src="@drawable/image" />
        </LinearLayout>
    </ScrollView>

    <LinearLayout
        android:layout_width="0dip"
        android:layout_height="match_parent"
        android:layout_weight="0.5"
        android:background="#FFFFFF"
        android:orientation="vertical" >

        <FrameLayout
            android:id="@+id/frame"
            android:layout_width="match_parent"
            android:layout_height="match_parent" >
        </FrameLayout>
    </LinearLayout>

</LinearLayout>

答案 2 :(得分:0)

在你的情况下,子ScrollView和LinearLayout需要相同的权重,并将Scoll数据设置为ScrollView的中心:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/content"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#FFFFFF" >

    <ScrollView
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:gravity="center_horizontal"
        android:orientation="vertical"
        android:background="#ffffff">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="#F4F2F2"
            android:orientation="vertical"
            android:gravity="center">

            <TextView
                android:id="@+id/textView2"
                android:layout_width="50dp"
                android:layout_height="wrap_content"
                android:gravity="left"
                android:text="Notes:"
                android:textSize="15sp"
                android:textColor="#000000"
                android:layout_marginTop="5dp"/>

            <EditText
                android:id="@+id/notetext"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:ems="10"
                android:textColor="#000000"
                android:background="#ffffff"
                android:layout_marginTop="5dp">
            </EditText>

            <ImageView
                android:id="@+id/mImageView"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:src="@drawable/picframe"
                android:contentDescription="TODO"
                android:layout_marginTop="5dp"/>

        </LinearLayout>

    </ScrollView>

    <LinearLayout
        android:layout_width="0dip"
        android:layout_height="match_parent"
        android:background="#FFFFFF"
        android:layout_weight="1"
        android:orientation="vertical" >

        <FrameLayout
            android:id="@+id/frame"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" >
        </FrameLayout>

    </LinearLayout>

</LinearLayout>

答案 3 :(得分:0)

尝试一下这个,您无需向您的孩子0dp提供LinearLayout

<ScrollView
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_marginLeft="15dp"
        android:layout_marginRight="15dp"
        android:layout_weight="1"
        android:background="#ffffff"
        android:gravity="center_horizontal"
        android:orientation="vertical" >

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="#F4F2F2"
            android:orientation="vertical" >