带有ScreenSize项的ScrollView

时间:2015-06-23 11:58:21

标签: android xml scrollview subviews

我需要一个包含4个按钮的垂直ScrollView。 每个按钮应该是电话的大小。

这样的事情:

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

<LinearLayout
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <Button
        android:layout_width="fill_parent"
        android:layout_height="match_parent"
        android:text="First Content."
        android:textSize="50sp"/>

    <Button
        android:layout_width="fill_parent"
        android:layout_height="match_parent"
        android:text="Second Content."
        android:textSize="50dip"/>

</LinearLayout>
</ScrollView>

我尝试了很多选项,但是没有办法解决这个问题。

1 个答案:

答案 0 :(得分:1)

所有你必须做一个动态布局

在xml中保留布局

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

然后在你的activity / fragment java文件

LinearLayout lnLayoutContainer=(LinearLayout)findViewById(R.id.lnr_layout_container);

计算设备的高度

DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
int height = displayMetrics.heightPixels;

现在给布局容器充气并添加按钮

     for(int i=0;i<4;i++)
               {

                Button btnView= new Button(context);
                <set your button properties and listener here>

                LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, height);
                layoutParams.weight = 1;
                btnView.setLayoutParams(layoutParams);

                lnLayoutContainer.addView(txtViewChar);
                }