Android 安卓垂直中心

Android 安卓垂直中心,android,Android,为什么这些不垂直居中?我正在努力解决这个问题,但无法让它发挥作用 这是一个相对位置,位于显示屏底部 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="46dp" style="?headerfooter" andro

为什么这些不垂直居中?我正在努力解决这个问题,但无法让它发挥作用

这是一个相对位置,位于显示屏底部

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="46dp"
style="?headerfooter"
android:id="@+id/linlay2"
android:layout_below="@+id/ListView01"
android:gravity="center_vertical"
android:layout_alignBottom="@+id/mainrel">
<EditText 
    android:id="@+id/EditText_AddNewList" 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    android:hint="@string/dialog_addnew_lists_listnamehint"
    android:layout_centerVertical="true"
    android:gravity="center_vertical"
    android:layout_gravity="center_vertical"
    android:layout_weight="1">
</EditText>
<Button 
        android:id="@+id/bSQLUpdate" 
        android:layout_width="40dp" 
        android:layout_height="40dp" 
        android:layout_centerVertical="true"
        android:layout_gravity="center_vertical"
        android:gravity="center_vertical"
        android:layout_marginLeft="2dp"
        android:layout_marginRight="2dp"
        style="?button_add"/>
</LinearLayout>

两个建议:

1) 如果将
LinearLayout
layout\u高度设置为包装内容,会怎么样
2) 我怀疑您的
EditText
可能有点太大(我以前遇到过类似的问题),因此如果您将其高度从
wrap\u content
更改为
match\u parent
,您可能会更幸运。

您是否尝试过使用“center”而不是“center\u vertical”?另外,如果你想把东西放在一条从屏幕顶部到屏幕底部的假想线的中心,那么你要找的就是水平中心

这里有一些代码将一个项目放置在屏幕中间:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

      <ProgressBar
        android:id="@+id/electionsProgressBar"
        style="?android:attr/progressBarStyleLarge"
        android:layout_width="wrap_content"
        android:layout_height="match_parent" android:layout_gravity="center_vertical|center_horizontal"/> 

</LinearLayout>


我不确定这是否有帮助,但我发现,当Android上的内容布局不正确时,将权重属性设置为1有时会有所帮助。android:layout_weight=“1”。试试你的按钮。没有区别2。match_parent对我不可用,我使用的是2.1 API 7,需要8
fill_parent
match_parent
解决相同的问题<代码>匹配父项
只是更准确的描述。因此,请尝试填写您的家长您还可以尝试将
EditText
上的
layout\u高度设置为
0dp
。基本上,这将使它使用您分配给它的布局权重1,以便在所有其他布局完成后填充剩余空间。多么奇怪。因为它的重量是1,所以应该按比例放大。把它设为40dp怎么样?35dp怎么样?我们的想法是,如果我们垂直收缩它,看看它的中心是否更好。40dp就像它的顶部与按钮对齐一样。35分时,它较低,但不在中间。设置android:layout_marginTop=“2dp”几乎可以解决这个问题。也许这和父母的关系有关。稍后我将尝试使用LinearLayout。我知道如何居中。这就是为什么我不明白为什么这不起作用