如何在另一个视图基线中间对齐视图?

Posted

技术标签:

【中文标题】如何在另一个视图基线中间对齐视图?【英文标题】:How to align views in the middle of another views baseline? 【发布时间】:2010-06-16 08:07:41 【问题描述】:

如何相对于另一个视图的“中间”部分对齐视图?

我认为最好用我尝试在 android 中创建的 UI 的图片来解释。

【问题讨论】:

【参考方案1】:

我使用了下面的代码,但它仍然有一些缺点:你应该修改值:

 <?xml version="1.0" encoding="utf-8"?>
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/widget"
android:layout_
android:layout_

android:layout_gravity="center_horizontal|center_vertical"
>
<EditText 
    android:id="@+id/bullet"
    android:layout_
    android:layout_

    android:paddingRight="4dip"
    android:includeFontPadding="false"
    android:lines="4"
    android:text="hidhidihfidhfdifhdifhdifhidhfidf" />
<ImageView
    android:id="@+id/icon"
    android:layout_ 
    android:layout_
    android:background="#ffff00"
    android:src="@drawable/icon"
    android:layout_alignTop="@id/bullet"

     android:layout_marginLeft="50dip" />

  <ImageView
    android:id="@+id/icon1"
    android:layout_ 
    android:layout_

    android:background="#ff00ff"
    android:layout_alignBottom="@id/bullet"

    android:layout_marginLeft="100dip"
    android:src="@drawable/star_logo" />

  </RelativeLayout>

【讨论】:

【参考方案2】:

@pengwang 以及它可能关注的对象

基线是指任何视图、按钮、图像视图或任何控件的底部线。当您使用基线属性时,您将给出您想要引用的基础的任何 id,或者那是您想要按钮或任何位置的位置。当您切换到图形视图时,它将显示它如何处理您定义的基线

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_
    android:layout_
    android:orientation="vertical" >
    <RelativeLayout
        android:id="@+id/relativeLayout1"
        android:layout_
        android:layout_ >
        <ImageButton
            android:id="@+id/iB"
            android:layout_
            android:layout_
            android:src="@drawable/ic_launcher"
            android:layout_alignParentBottom="true" />

        <Button
            android:id="@+id/button1"
            android:layout_
            android:layout_
            android:text="Button"
            android:layout_alignParentBottom="true"
            android:layout_toRightOf="@id/iB"
            android:layout_alignBaseline="@id/relativeLayout1" />
    </RelativeLayout>
</LinearLayout>

【讨论】:

【参考方案3】:

做这样的事情

    <EditText
        android:id="@+id/searchedittext"
        android:layout_
        android:layout_
        android:hint="Search Events, Restaurants, Businesses"
        android:singleLine="true"
        android:textSize="15dip" />

    <Button
        android:id="@+id/searchbtn"
        android:layout_
        android:layout_
        android:layout_marginLeft="-50dip"
        android:background="@drawable/ic_menu_search" />
    <Button
        android:id="@+id/searchbtn2"
        android:layout_
        android:layout_
        android:layout_marginLeft="-30dip"
        android:background="@drawable/ic_menu_search" />
</LinearLayout>

【讨论】:

【参考方案4】:

要放置父视图的视图中心,您只需指定此属性 android:gravity="center"

【讨论】:

以上是关于如何在另一个视图基线中间对齐视图?的主要内容,如果未能解决你的问题,请参考以下文章

视图中按钮的对齐方式

以编程方式使用自动布局约束在视图中垂直对齐中间的子视图

切换到响应式移动设备时如何并排对齐四个div

如何在 Jetpack Compose 中按基线对齐行元素

如何在另一个视图 iOS 上垂直翻转视图?

如何在弹性框中将一个元素的中心与另一个元素的基线对齐