设置linearLayout边距
Posted
技术标签:
【中文标题】设置linearLayout边距【英文标题】:Set linearLayout margin 【发布时间】:2018-08-10 13:59:36 【问题描述】:我需要用动态 TextView 填充 LinearLayout(ScrollView 的子级)。
问题是,在我的应用程序中,滚动开始的位置没有定义(它在使用应用程序时会动态变化),我想我已经用layout_constraintTop_toBottomOf
解决了这个问题。
主要问题是我需要 ScrollView 从底部以 90dp 结束。但是我不能用边距来做到这一点(如下面的代码),因为它会忽略它们。
我也尝试过填充,但也没有用。
这是我不起作用的解决方案:
<ScrollView
android:id="@+id/scroll_seguiti"
android:layout_
android:layout_
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_
android:layout_
android:paddingBottom="90dp"
android:orientation="vertical">
</LinearLayout>
</ScrollView>
我真的需要那个边距,因为底部有一些按钮。 如要求,这是我的完整 xml:
<TableLayout
android:id="@+id/tableLayout_seguiti"
android:layout_
android:layout_
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_
android:layout_
android:layout_marginEnd="10dp">
<TextView
android:layout_
android:layout_
android:layout_marginBottom="8dp"
android:text="Cerca utenti da seguire"
android:textSize="20sp" />
</TableRow>
<TableRow
android:layout_
android:layout_
android:layout_marginEnd="10dp">
<EditText
android:id="@+id/edit_search"
android:layout_
android:layout_
android:ems="10"
android:inputType="textPersonName"
android:hint="Cerca..." />
</TableRow>
</TableLayout>
<ScrollView
android:id="@+id/scroll"
android:layout_
android:layout_
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_
android:layout_
android:orientation="vertical">
</LinearLayout>
</ScrollView>
<ScrollView
android:id="@+id/scroll_view"
android:layout_
android:layout_
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_
android:layout_
android:orientation="vertical">
<TextView
android:layout_
android:layout_
android:layout_marginTop="20dp"
android:layout_marginBottom="8dp"
android:text="Utenti che segui"
android:textSize="20sp" />
<TextView
android:layout_
android:layout_
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_
android:layout_
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_
android:layout_
android:orientation="vertical">
</LinearLayout>
</ScrollView>
<Button
android:id="@+id/btn_mieiPost"
android:layout_
android:layout_
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_
android:layout_
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_
android:layout_
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" />
【问题讨论】:
【参考方案1】:您只需要为滚动视图设置边距。从线性布局中删除边距。 为滚动视图添加 full viewport: true。
【讨论】:
android:fillViewport=true; 我只为滚动设置了边距,还添加了 android:fillViewport=true 但它仍然忽略了底部边距。【参考方案2】:制作scrollView的高度match_parent
这可能有助于检查以下内容
<ScrollView
android:id="@+id/scroll_seguiti"
android:layout_
android:layout_
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_
android:layout_
android:paddingBottom="90dp"
android:orientation="vertical">
</LinearLayout>
【讨论】:
如果我将其设为 match_parent,则视图从所有内容的顶部开始,而不是我希望它从“scroll_view”的底部开始,如 app:layout_constraintTop_toBottomOf="@id/scroll_view" 共享整个布局 xml以上是关于设置linearLayout边距的主要内容,如果未能解决你的问题,请参考以下文章
以编程方式在 RealtiveLayout 中设置 LinearLayout 的边距 - 不起作用
试图了解 ScrollView 内 LinearLayout 的边距