0

我试图在滚动视图内设置两个两个线性布局 50% 的屏幕大小,但布局没有占用 50% 的屏幕大小。这是我的布局。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/rlScrollingPlayList"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <ScrollView
        android:id="@+id/svPlayList"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >

        <LinearLayout
            android:id="@+id/llScrollingContent"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"

            android:weightSum="100">
               <LinearLayout android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="50">

                   <Button
                       android:id="@+id/btOne"
                       android:layout_width="wrap_content"
                       android:layout_height="wrap_content"
                       android:layout_weight="50"
                       android:text="Button" />

        </LinearLayout>
        <LinearLayout android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="50">

            <Button
                android:id="@+id/btTwo"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:text="Button" />

</LinearLayout>

        </LinearLayout>
    </ScrollView>

</RelativeLayout>
4

6 回答 6

0
Display dis = getActivity().getWindowManager().getDefaultDisplay();
int width = dis.getWidth() * 50 / 100;
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
                                    width,
                                    RelativeLayout.LayoutParams.FILL_PARENT);

                            homeFrameLayout.setLayoutParams(lp);
于 2013-06-25T07:04:21.213 回答
0

ScrollView 的问题是,如果您没有在 dp 或 px 中给出高度/宽度,那么 ScrollView 会将所有高度和宽度设置为 wrap_content。如果您想将屏幕分成两部分,最好在分割的布局中使用滚动。

例如:

<LinearLayout  android:weightSum="1"
               android:layout_height="fill_parent"
               android:layout_width="fill_parent">
<LinearLayout android:layout_height=0.5
              android:layout_width="fill_parent">
 <ScrollView>
  <LinearLayout/>
 </ScrollView>
</LinearLayout>

<LinearLayout android:layout_height=0.5
              android:layout_width="fill_parent">
 <ScrollView>
  <LinearLayout/>
 </ScrollView>
</LinearLayout>
</LinearLayout> 
于 2013-06-25T07:04:34.250 回答
0
<?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/rlScrollingPlayList"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >

        <ScrollView
            android:id="@+id/svPlayList"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent">

            <LinearLayout
                android:id="@+id/llScrollingContent"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:weightSum="2"
                android:orientation="vertical">

             <LinearLayout 
                  android:layout_width="fill_parent"
                  android:layout_height="wrap_content"
                  android:layout_weight="1">

                 <Button
                      android:id="@+id/btOne"
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:text="Button" />

            </LinearLayout>
            <LinearLayout android:layout_width="fill_parent"
                          android:layout_height="wrap_content"
                          android:layout_weight="1">

                <Button
                    android:id="@+id/btTwo"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:text="Button" />

    </LinearLayout>

            </LinearLayout>
        </ScrollView>

    </LinearLayout>
于 2013-06-25T07:08:28.460 回答
0

从两个 LinearLayouts 中删除 android:layout_height="fill_parent"。并更换

android:layout_height="0dp"
android:layout_weight="1" 

对他们两个!

于 2013-06-25T07:09:19.473 回答
0

这里 weight 不起作用,我们需要动态执行,使用 displaymetrics 获取屏幕尺寸,然后将这些参数设置为动态布局的高度和宽度

于 2013-06-25T06:59:14.537 回答
0

试试下面的代码: -

    <LinearLayout
        android:id="@+id/llScrollingContent"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:weightSum="2.0" >

        <RelativeLayout
            android:id="@+id/child_one"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1.0"
            android:background="#0000FF" >

            <Button
                android:id="@+id/btOne"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Button" />
        </RelativeLayout>

        <RelativeLayout
            android:id="@+id/child_one"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1.0"
            android:background="#0FF0FF" >

            <Button
                android:id="@+id/btTwo"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:text="Button" />
        </RelativeLayout>
    </LinearLayout>

并像下面的代码一样动态添加滚动视图:-

LinearLayout maincontainer = (LinearLayout) findViewById(R.id.weatherInfo);
maincontainer.setOrientation(LinearLayout.HORIZONTAL);

final HorizontalScrollView scrollView = new HorizontalScrollView(getApplicationContext());
maincontainer.addView(scrollView);

final LinearLayout linearLayout = new LinearLayout(getApplicationContext());
linearLayout.setOrientation(LinearLayout.HORIZONTAL);

scrollView.addView(linearLayout);
于 2013-06-25T08:30:52.460 回答