设置滚动视图的边距

时间:2012-09-18 13:41:23

标签: java android layout scrollview android-framelayout

我正在尝试在framelayout中使用scrollview。 滚动视图应该只显示在显示屏的下半部分。

目前定位正确:

http://www.gtv-handball.de/Unbenannt.png

如您所见,正确的区域是可以分解的。 但问题是,上部不能再被点击,导致滚动视图超出此部分。

要在下半部分显示滚动视图,我在其上放了一些填充:

scrollviwe = (ScrollView)findViewById(R.id.linlayout);
scrollview.setPadding(0, 175, 0, 0);

所以我没有找到任何方法来使用填充选项显示它。

我认为,没有办法设置滚动视图的边距, 但是我该怎么做?

以下是完整但缩短的XML代码:

<?xml version="1.0" encoding="utf-8"?>
 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
   android:orientation="vertical" >
    <FrameLayout
        android:id="@+id/framelayout"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="top|left" >
         <ImageView
         android:id="@+id/coverimg"
         android:layout_width="fill_parent"
         android:layout_height="wrap_content"
         android:layout_gravity="top|left"
         android:maxHeight="100dp"
         android:minHeight="130dp"
         android:minWidth="130dp"
         android:src="@drawable/cover_img" />
</FrameLayout>
<ScrollView
android:id="@+id/linlayout"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:id="@+id/linlayout2"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
    <Button
    android:id="@+id/teilen"
    style="ButtonStyle"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/btn_blue"
    android:gravity="center_vertical|center_horizontal"
    android:padding="4dp"
    android:text="Teilen"
    android:layout_margin="4dp"
    android:layout_weight="1" />
    <Button
    android:id="@+id/kaufen"
    style="ButtonStyle"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/btn_blue"
    android:gravity="center_vertical|center_horizontal"
    android:padding="4dp"
    android:text="Kaufen"
    android:layout_margin="4dp"
    android:layout_weight="1"/>
    <Button
    android:id="@+id/youtube"
    style="ButtonStyle"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/btn_blue"
    android:gravity="center_vertical|center_horizontal"
    android:padding="4dp"
    android:text="YouTube"
    android:layout_margin="4dp"
    android:layout_weight="1" />
</LinearLayout>
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:text="Zuletzt gehört:" />
</LinearLayout>
</ScrollView>
</FrameLayout>

3 个答案:

答案 0 :(得分:1)

您是否尝试过使用RelativeLayout?如果我正确理解您的目标,则可以更轻松地管理屏幕上的所有不同视图,因为您可以相对于彼此或屏幕边框对齐视图。它也可以与FrameLayouts类似的方式使用,以将视图叠加在一起。

答案 1 :(得分:0)

我建议你换一个线性布局。因为它更容易管理使用权重在屏幕上占用多少空间。

你可以尝试一下。

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

<LinearLayout
android:id="@+id/framelayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="top|left"
android:layout_weight="0.5" 
android:orientation="horizontal" 
android:weightSum="1">

<ImageView
    android:id="@+id/coverimg"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_gravity="top|left"
    android:maxHeight="100dp"
    android:minHeight="130dp"
    android:minWidth="130dp"
    android:src="@drawable/ic_launcher"
    android:layout_weight="0.5" />
<LinearLayout android:layout_width="0dp"
    android:layout_height="match_parent"
    android:layout_weight="0.5">
    <TextView android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Add Text"/>
    <!-- Add other views -->
  </LinearLayout>
</LinearLayout>

<ScrollView
android:id="@+id/linlayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="0.5" >

<LinearLayout
    android:id="@+id/linlayout2"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

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

        <Button
            android:id="@+id/teilen"
            style="ButtonStyle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="4dp"
            android:layout_weight="1"
            android:gravity="center_vertical|center_horizontal"
            android:padding="4dp"
            android:text="Teilen" />

        <Button
            android:id="@+id/kaufen"
            style="ButtonStyle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="4dp"
            android:layout_weight="1"
            android:gravity="center_vertical|center_horizontal"
            android:padding="4dp"
            android:text="Kaufen" />

        <Button
            android:id="@+id/youtube"
            style="ButtonStyle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="4dp"
            android:layout_weight="1"
            android:gravity="center_vertical|center_horizontal"
            android:padding="4dp"
            android:text="YouTube" />
    </LinearLayout>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="Zuletzt gehört:" />
</LinearLayout>
</ScrollView>
</LinearLayout>

答案 2 :(得分:0)

尝试将边距或填充设置为ScrollView外部的视图。在这种情况下,它将是FrameLayout。