Java 设置滚动视图的边距

Java 设置滚动视图的边距,java,android,layout,scrollview,android-framelayout,Java,Android,Layout,Scrollview,Android Framelayout,我正在尝试在framelayout中使用滚动视图。 滚动视图应该显示在显示器的下半部分 目前的定位是正确的: 如您所见,正确的区域是否可滚动。 但问题是,上面的部分不能再点击了,因为滚动视图在这部分的上方 为了在downer半部显示scrollview,我在其上添加了一些填充: scrollviwe = (ScrollView)findViewById(R.id.linlayout); scrollview.setPadding(0, 175, 0, 0); 因此,我没有找到任何方法来使用p

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

目前的定位是正确的:

如您所见,正确的区域是否可滚动。 但问题是,上面的部分不能再点击了,因为滚动视图在这部分的上方

为了在downer半部显示scrollview,我在其上添加了一些填充:

scrollviwe = (ScrollView)findViewById(R.id.linlayout);
scrollview.setPadding(0, 175, 0, 0);
因此,我没有找到任何方法来使用padding选项来显示它

我认为,没有办法绕过为scrollview设置边距, 但我如何做到这一点呢?

以下是完整但简短的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>

我建议您包装一个线性布局。因为使用权重更容易管理屏幕上的空间大小

你可以试试这个

<?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>


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

你有没有尝试过使用?如果我正确理解了您的目标,那么管理屏幕上的所有不同视图可能会更容易,因为您可以相对彼此或屏幕边框对齐视图。它还可以以与框架布局类似的方式使用,以将视图重叠在另一个框架布局之上。

如果将滚动视图放在另一个框架布局之上,它肯定无法工作。使用线性布局(垂直),并将每个高度为0dp、重量为1的线性布局放置在何处?在第一个framelayout之后和scrollview之前?而不是第一个framelayout之后,我无法管理重叠的一些视图。我没有意识到它们是重叠的。使用相对布局,问题是,我正在以编程方式设置一些边距,如下所示:FrameLayout fl=(FrameLayout)findviewbyd(R.id.FrameLayout);FrameLayout.LayoutParams lp=新的FrameLayout.LayoutParams(宽度,宽度/2);fl.setLayoutParams(lp);我得到了09-18 14:16:29.665:E/AndroidRuntime(772):致命异常:main 09-18 14:16:29.665:E/AndroidRuntime(772):java.lang.ClassCastException:android.widget.FrameLayout$LayoutParams为哪些组件设置参数。FrameLayout中的所有组件。在我建议的答案中,只有一个组件,即framelayout中的imageview。我是否应该假定您仅为该组件应用新参数值。你也可以通过编程更改参数来说明你计划实现什么。我在不同类型和尺寸的显示器上实现相同的布局。把所有这些视图放在一个相对的窗口中,你能在我发布的图片中看到它们吗?我试过了,但最终使用了框架布局。我很难在relativelayout中定位不同的视图…我将布局更改为relativelayout。一切正常。谢谢,亚伦,太好了!很高兴你能让它工作。RelativeLayout有时可能很棘手,但它们确实有助于使代码更加精简。