Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 带权重和滚动视图的线性布局_Android_Android Layout_Android Linearlayout_Android Layout Weight - Fatal编程技术网

Android 带权重和滚动视图的线性布局

Android 带权重和滚动视图的线性布局,android,android-layout,android-linearlayout,android-layout-weight,Android,Android Layout,Android Linearlayout,Android Layout Weight,我正在尝试使用权重创建响应性布局,但在这种情况下,我还需要使用滚动视图 这是我此刻的代码: <RelativeLayout 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" tools:

我正在尝试使用权重创建响应性布局,但在这种情况下,我还需要使用滚动视图

这是我此刻的代码:

<RelativeLayout 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"
tools:context=".EncyclopediaFragment">

    <!--Linear Container-->
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:weightSum="100">

        <!--Title Box-->
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="20"
            android:orientation="horizontal"
            android:weightSum="100">

            <!--Empty Space-->
            <LinearLayout
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="5">


            </LinearLayout>

            <!--Text Box-->
            <LinearLayout
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="95">

                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:text="@string/encyclopedia_mosntersLabel"
                    android:gravity="center"
                    android:textAlignment="viewStart"/>

            </LinearLayout>

        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="40">

        </LinearLayout>

    </LinearLayout>
但它必须是这样的

该布局被认为是响应重量,但在同一时间,我需要使它有可能滚动

因此,我的问题是:如何创建一个具有权重的布局,同时创建一个可以向下滚动的布局,就像在图片中一样?

滚动视图中的内容应该使用wrap\u parent,如果要拉伸其中的内容,请将安卓:fillViewport=true。试试这个:

<RelativeLayout 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"
tools:context=".EncyclopediaFragment">

<!--Toolbar-->
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content">

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

<!--Linear Container With Weights--> 

</RelativeLayout>
</ScrollLayout>
</RelativeLayout>
<RelativeLayout 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"
tools:context=".EncyclopediaFragment">

    <ScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fillViewport="true">

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

            <!--Linear Container--> 

        </RelativeLayout>
    </ScrollLayout>
</RelativeLayout>

如果你有确定数量的6个怪物和8座塔,以下是你应该如何组织布局:

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

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

            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="Monsters"/>

            <!-- the following LinearLayout should be repeated twice for 6 Monsters -->

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal">

                <MonsterView
                    android:layout_weight="1"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content" />

                <MonsterView
                    android:layout_weight="1"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content" />

                <MonsterView
                    android:layout_weight="1"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content" />

            </LinearLayout>

            ...


            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="Towers"/>        

            <!-- the following LinearLayout should be repeated twice for 6 Towers -->

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal">

                <TowerView
                    android:layout_weight="1"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content" />

                <TowerView
                    android:layout_weight="1"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content" />

                <TowerView
                    android:layout_weight="1"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content" />

            </LinearLayout>

            ...


            <!-- attention here for two Towers in the last row -->        

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                android:weightSum="3">

                <TowerView
                    android:layout_weight="1"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content" />

                <TowerView
                    android:layout_weight="1"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content" />

            </LinearLayout>

        </LinearLayout>
    </ScrollView>

有多少怪物和多少塔?我是说作为一个群体?这是一组怪物和一组塔吗[如图所示]?你可以在滚动视图中放置一个布局。我以前使用网格布局和带权重的线性布局的目的完全相同。对于你要穿越的怪物,我建议一个表行宽度=匹配父项,重力=中心,每个怪物宽度=0dp,重量=1。。。。。不要使用权重总和。假设每行有3个怪物和3座塔。我们一共有6个怪物和8个towers@ArchiFloyd你能解释清楚吗?这没用。外部相对物yout不起任何作用。ScrollView内部的布局应该有android:layout\u height=wrap\u内容。否则就没有意义了!好的,它可以工作,但我如何才能以响应的方式更改每个TowerView或MonsterView的高度?您可以在values或dimens文件中定义一个维度资源:20dp,并在MonsterView标记内引用它:android:layout_height=@dimen/monster_heightSo,没有办法使用权重?你不需要使用权重概念来控制大多数视图的布局高度。它不能与ScrollView组合。