我在线性布局中尝试了scrollview,这个线性布局权重是40%,但是在scrollview中添加更多元素时,linearlayout扩展了它的高度而不是在scrollview中添加滚动条,Heres是我的代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:weightSum="100"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="20"
android:orientation="vertical"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/new_list1"
android:orientation="vertical"
android:weightSum="20"
android:layout_weight="40"
></LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/list"
android:orientation="vertical"
android:layout_weight="40"
></LinearLayout>
</LinearLayout>
MyActivityCode
LinearLayout OuterList = (LinearLayout)
findViewById(R.id.list);
LinearLayout OuterScroll = new LinearLayout(context);
OuterScroll.setOrientation(LinearLayout.VERTICAL);
for(int i = 0; i<= 10 ; i++)
{
LinearLayout childLayout = new LinearLayout(context);
LinearLayout.LayoutParams trlpChildOuter = new
LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT,
LayoutParams.MATCH_PARENT,30f);
OuterScroll.addView(childLayout,trlpChildOuter)
}
ScrollView scroll = new ScrollView(context);
LinearLayout.LayoutParams Params = new
LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT,
LayoutParams.MATCH_PARENT,100f);
scroll.addView(OuterScroll, Params);
LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT,10
0f);
OuterList.addView(scroll, rps);
答案 0 :(得分:2)
您可以在xml文件中添加该scrollview。为什么要添加 Activity.java 文件。如果你在xml文件中添加它工作正常。我尝试了这个它正在为我工作。
答案 1 :(得分:1)
根据我的理解,你想要将你的外部视图放在手机高度的某个位置,然后如果它们溢出那个外部视图,你想要用滚动条适合10个视图,对吗?
要做到这一点,你的ScrollView
必须是固定的高度,例如MATCH_PARENT。因为页面之前已被分割,所有其他外部视图已经具有固定高度,并且由于高度是固定的,ScrollView
将在内部显示滚动条以为其内容腾出空间。
在您的代码rps
param中,必须是:
LinearLayout.LayoutParams rps = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT, 100f);
布局权重不是百分比值,而是浮点数,表示兄弟元素的相对大小。例如,将两个视图放在容器中,其中第一个具有权重1.0,第二个具有权重2.0,第二个将是第一个的两倍。看What does android:layout_weight mean?
答案 2 :(得分:0)
将ScrollView
的高度设为MATCH_PARENT
。
答案 3 :(得分:0)
尝试通过此.xml布局代码查看相同或正常工作的代码尝试此代码 没有必要以编程方式执行此操作。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="200dp"
></LinearLayout>
<ScrollView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#000000"
android:layout_weight="1"
>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
></LinearLayout>
</ScrollView>
</LinearLayout>