Java 设置滚动视图的边距
我正在尝试在framelayout中使用滚动视图。 滚动视图应该显示在显示器的下半部分 目前的定位是正确的: 如您所见,正确的区域是否可滚动。 但问题是,上面的部分不能再点击了,因为滚动视图在这部分的上方 为了在downer半部显示scrollview,我在其上添加了一些填充: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
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有时可能很棘手,但它们确实有助于使代码更加精简。