【问题标题】:Combination of Scrollview HorizontalScrollView and LinearLayoutScrollview Horizo​​ntalScrollView 和 LinearLayout 的组合
【发布时间】:2017-03-25 03:34:04
【问题描述】:

这类问题的大部分答案通常是“android:fillViewPort = true”,但我认为在我的情况下有所不同

我的 xml:

    <?xml version="1.0" encoding="utf-8"?>

    <ScrollView  xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fillViewport="true"
        android:scrollbars="vertical"
        >

        <HorizontalScrollView
            android:layout_width="match_parent"
            android:layout_height="match_parent">

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

                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:textAppearance="?android:attr/textAppearanceLarge"
                    android:text="PROFILE PAGE"
                    android:id="@+id/profile_title"
                    android:background="@android:color/holo_green_light"
                    android:gravity="center"
                    android:textColor="@color/abc_background_cache_hint_selector_material_light"
                    android:textStyle="bold"
                    android:typeface="sans" />

                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:textAppearance="?android:attr/textAppearanceLarge"
                    android:text="ss"
                    android:id="@+id/profile_titlexx"
                    android:background="@android:color/holo_green_light"
                    android:gravity="center"
                    android:textColor="@color/abc_background_cache_hint_selector_material_light"
                    android:textStyle="bold"
                    android:typeface="sans" />

<TableLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content">

                <TableRow
                    android:id="@+id/tableRow1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:padding="5dip" >

                <TextView
                    android:id="@+id/textView1"
                    android:text="FB/G+   : "
                    android:textSize="20dp"
                    android:typeface="sans"
                    android:textAppearance="?android:attr/textAppearanceLarge" />
                <TextView
                    android:id="@+id/textViewIDLogin"
                    android:text="Column 2"
                    android:textSize="20dp"
                    android:textAppearance="?android:attr/textAppearanceLarge"
                    android:typeface="sans"
                    android:textStyle="italic" />

                </TableRow>
                <TableRow
                    android:id="@+id/tableRow2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:padding="5dip" >

                    <TextView
                        android:id="@+id/textView2"
                        android:text="Adress : "
                        android:textSize="20dp"
                        android:typeface="sans"
                        android:textAppearance="?android:attr/textAppearanceLarge" />
                    <TextView
                        android:id="@+id/textViewAddress"
                        android:text="street"
                        android:textSize="20dp"
                        android:textAppearance="?android:attr/textAppearanceLarge"
                        android:typeface="sans"   />

                </TableRow>

                <TableRow
                    android:id="@+id/tableRow3"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:padding="5dip" >

                    <TextView
                        android:id="@+id/textView3"
                        android:text="Contact : "
                        android:textSize="20dp"
                        android:typeface="sans"
                        android:textAppearance="?android:attr/textAppearanceLarge" />

                    <TextView
                        android:id="@+id/textViewContact"
                        android:text="221149089xx"
                        android:textAppearance="?android:attr/textAppearanceLarge"
                        android:textSize="20dp"
                        android:typeface="sans" />

                </TableRow>

            </TableLayout>

            <TextView
                android:id="@+id/textViewDiamondPoint"
                android:text="2150"
                android:textAppearance="?android:attr/textAppearanceLarge"
                android:textSize="20dp"
                android:gravity="center_vertical|center|center_horizontal"
                android:layout_gravity="center"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:typeface="sans"
                android:padding="6dp"
                android:background="@color/material_grey_100"
                android:layout_marginTop="5dp" />

            <TableLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content">

                <TableRow
                    android:id="@+id/tableRow4"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:padding="5dip" >

                <TextView
                    android:id="@+id/textView4"
                    android:text="sum of treatment  : "
                    android:textSize="20dp"
                    android:typeface="sans"
                    android:textAppearance="?android:attr/textAppearanceLarge" />

                    <TextView
                        android:id="@+id/textViewJumlahPerawatan"
                        android:text="8 "
                        android:textAppearance="?android:attr/textAppearanceLarge"
                        android:textSize="20dp"
                        android:typeface="sans" />

                </TableRow>

                <TableRow
                    android:id="@+id/tableRow5"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:padding="5dip" >

                    <TextView
                        android:id="@+id/textView5"
                        android:text="Diamond : "
                        android:textSize="20dp"
                        android:typeface="sans"
                        android:textAppearance="?android:attr/textAppearanceLarge" />
                    <TextView
                        android:id="@+id/textViewdp"
                        android:text="500 "
                        android:textSize="20dp"
                        android:typeface="sans"
                        android:textAppearance="?android:attr/textAppearanceLarge" />

                </TableRow>

                <TableRow
                    android:id="@+id/tableRow6"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:padding="5dip" >

                    <TextView
                        android:id="@+id/textView6"
                        android:text="Diamond sum         : "
                        android:textSize="20dp"
                        android:typeface="sans"
                        android:textAppearance="?android:attr/textAppearanceLarge" />
                    <TextView
                        android:id="@+id/textViewDiamondTotal"
                        android:text="2650 "
                        android:textSize="20dp"
                        android:typeface="sans"
                        android:textAppearance="?android:attr/textAppearanceLarge" />

                </TableRow>

            </TableLayout>


            <TextView
                android:id="@+id/textViewHistory"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:layout_marginTop="10dp"
                android:background="@android:color/holo_orange_light"
                android:gravity="center_vertical|center|center_horizontal"
                android:padding="6dp"
                android:text="last treatment"
                android:textAppearance="?android:attr/textAppearanceLarge"
                android:textColor="@color/common_google_signin_btn_text_dark_focused"
                android:textSize="20dp"
                android:textStyle="bold|italic"
                android:typeface="sans" />

            </LinearLayout>

        </HorizontalScrollView>

    </ScrollView>

我记得我浪费了我的时间试图在任何地方更改值..,但我仍然无法使布局填充该区域的宽度。

我只想让我的文本视图和表格布局填满屏幕的所有宽度。

【问题讨论】:

  • 如果你只想让它的子元素填满整个屏幕,为什么还要使用 Horizo​​ntalScrollView?
  • 对不起,我更新了我的xml,它实际上也包含表格布局

标签: android xml scrollview horizontalscrollview


【解决方案1】:

如果您只希望TextView 填充屏幕的所有宽度,那么我认为您不需要HorizontalScrollView。只需将其删除并将LinearLayout 的宽度设置为match_parent,如下所示。

<?xml version="1.0" encoding="utf-8"?>

<ScrollView  xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true"
android:scrollbars="vertical"
>

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

        <TextView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:text="PROFILE PAGE"
            android:id="@+id/profile_title"
            android:background="@android:color/holo_green_light"
            android:gravity="center"
            android:textColor="@color/abc_background_cache_hint_selector_material_light"
            android:textStyle="bold"
            android:typeface="sans" />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:text="ss"
            android:id="@+id/profile_titlexx"
            android:background="@android:color/holo_green_light"
            android:gravity="center"
            android:textColor="@color/abc_background_cache_hint_selector_material_light"
            android:textStyle="bold"
            android:typeface="sans" />

    </LinearLayout>

</ScrollView>

【讨论】:

  • 对不起,我实际上有更多的孩子,我只是剪掉它,因为我认为它更容易阅读。我实际上需要放置一些文本视图和一些表格布局。但我得到的是所有视图只使用了一半宽度
  • 可能是因为你的LinearLayout宽度wrap_content改成match_parent检查一下。
  • Android Studio 建议我使用包装内容,无论如何都尝试更改它,但不起作用,ps:我更新了我的 xml
【解决方案2】:

我终于通过使用这个结构让它工作了:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal" >


    <HorizontalScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:padding="1dp"
        android:fillViewport="true"
        >

        <ScrollView
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:padding="1dp"
            android:fillViewport="true">

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_margin="5dp"
                android:orientation="vertical">

                ... Child layout....

【讨论】: