【问题标题】:Set linearLayout margin设置linearLayout边距
【发布时间】:2018-08-10 13:59:36
【问题描述】:

我需要用动态 TextView 填充 LinearLayout(ScrollView 的子级)。

问题是,在我的应用程序中,滚动开始的位置没有定义(它在使用应用程序时会动态变化),我想我已经用layout_constraintTop_toBottomOf 解决了这个问题。

主要问题是我需要 ScrollView 从底部以 90dp 结束。但是我不能用边距来做到这一点(如下面的代码),因为它会忽略它们。

我也尝试过填充,但也没有用。

这是我不起作用的解决方案:

<ScrollView
    android:id="@+id/scroll_seguiti"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginEnd="10dp"
    android:layout_marginStart="10dp"
    android:layout_marginTop="10dp"
    android:layout_marginBottom="90dp"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toEndOf="parent"
    app:layout_constraintTop_toBottomOf="@id/scroll_view">


    <LinearLayout
        android:id="@+id/linear_view_seguiti"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingBottom="90dp"
        android:orientation="vertical">
    </LinearLayout>

</ScrollView>

我真的需要那个边距,因为底部有一些按钮。 如要求,这是我的完整 xml:

<TableLayout
    android:id="@+id/tableLayout_seguiti"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginEnd="10dp"
    android:layout_marginStart="10dp"
    android:layout_marginTop="25dp"
    android:layout_marginBottom="90dp"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toEndOf="parent"
    app:layout_constraintTop_toTopOf="parent">

    <TableRow
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginEnd="10dp">

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="8dp"
            android:text="Cerca utenti da seguire"
            android:textSize="20sp" />
    </TableRow>

    <TableRow
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginEnd="10dp">

        <EditText
            android:id="@+id/edit_search"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ems="10"
            android:inputType="textPersonName"
            android:hint="Cerca..." />
    </TableRow>

</TableLayout>


<ScrollView
    android:id="@+id/scroll"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginEnd="10dp"
    android:layout_marginStart="10dp"
    android:layout_marginTop="8dp"
    android:layout_marginBottom="90dp"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toEndOf="parent"
    app:layout_constraintTop_toBottomOf="@id/tableLayout_seguiti">


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


    </LinearLayout>

</ScrollView>


<ScrollView
    android:id="@+id/scroll_view"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginEnd="10dp"
    android:layout_marginStart="10dp"
    android:layout_marginBottom="90dp"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toEndOf="parent"
    app:layout_constraintTop_toBottomOf="@id/scroll">

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

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="20dp"
            android:layout_marginBottom="8dp"
            android:text="Utenti che segui"
            android:textSize="20sp" />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="8dp"
            android:text="Clicca sul nome degli utenti che desideri seguire o smettere di seguire."
            android:textSize="12sp" />

    </LinearLayout>

</ScrollView>


<ScrollView
    android:id="@+id/scroll_seguiti"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginEnd="10dp"
    android:layout_marginStart="10dp"
    android:layout_marginTop="10dp"
    android:layout_marginBottom="90dp"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toEndOf="parent"
    app:layout_constraintTop_toBottomOf="@id/scroll_view">


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

</ScrollView>


<Button
    android:id="@+id/btn_mieiPost"
    android:layout_width="100dp"
    android:layout_height="wrap_content"
    android:layout_marginBottom="20dp"
    android:layout_marginEnd="10dp"
    android:layout_marginStart="15dp"
    android:text="I miei post"
    style="@style/Widget.AppCompat.Button.Colored"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toStartOf="@+id/btn_home"
    app:layout_constraintStart_toStartOf="parent" />

<Button
    android:id="@+id/btn_seguiti"
    android:layout_width="100dp"
    android:layout_height="wrap_content"
    android:layout_marginBottom="20dp"
    android:layout_marginEnd="15dp"
    android:layout_marginStart="10dp"
    android:text="Seguiti"
    style="@style/Widget.AppCompat.Button.Colored"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toEndOf="@+id/btn_home" />


<Button
    android:id="@+id/btn_home"
    android:layout_width="100dp"
    android:layout_height="70dp"
    android:layout_marginBottom="10dp"
    android:layout_marginEnd="20dp"
    android:layout_marginStart="20dp"
    android:text="Home"
    style="@style/Widget.AppCompat.Button.Colored"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toStartOf="@+id/btn_seguiti"
    app:layout_constraintStart_toEndOf="@+id/btn_mieiPost"
    app:srcCompat="@android:drawable/ic_menu_gallery" />

【问题讨论】:

    标签: android xml android-layout scrollview android-linearlayout


    【解决方案1】:

    您只需要为滚动视图设置边距。从线性布局中删除边距。 为滚动视图添加 full viewport: true

    【讨论】:

    • android:fillViewport=true;
    • 我只为滚动设置了边距,还添加了 android:fillViewport=true 但它仍然忽略了底部边距。
    【解决方案2】:

    制作scrollView的高度match_parent这可能有助于检查以下内容

    <ScrollView
    android:id="@+id/scroll_seguiti"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_marginEnd="10dp"
    android:layout_marginStart="10dp"
    android:layout_marginTop="10dp"
    android:layout_marginBottom="90dp"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toEndOf="parent"
    app:layout_constraintTop_toBottomOf="@id/scroll_view">
    
    
    <LinearLayout
        android:id="@+id/linear_view_seguiti"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingBottom="90dp"
        android:orientation="vertical">
    </LinearLayout>
    

    【讨论】:

    • 如果我将其设为 match_parent,则视图从所有内容的顶部开始,而不是我希望它从“scroll_view”的底部开始,如 app:layout_constraintTop_toBottomOf="@id/scroll_view"
    • 共享整个布局 xml
    猜你喜欢
    • 2011-01-29
    • 1970-01-01
    • 2013-11-01
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-25
    相关资源
    最近更新 更多