EditText不会显示在TextInputLayout的中心

时间:2018-02-12 17:24:55

标签: android-layout android-edittext

无论我做什么,我的EditText都显示如下:

enter image description here

我的XML:

<android.support.design.widget.TextInputLayout
    android:id="@+id/text_input_layout_search"               
    android:layout_width="wrap_content"
    android:layout_weight="1"
    android:layout_gravity="top"
    android:gravity="top"                
    android:layout_height="wrap_content">
    <EditText
         android:background="@null"
         android:textColor="@color/black"
         android:layout_centerInParent="true"
         android:gravity="top"
         android:layout_gravity="top"
         android:id="@+id/SearchText"
         android:textColorLink="@color/black"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:textColorHint="@color/normatext"
     android:inputType="text"/>
 </android.support.design.widget.TextInputLayout>

我在每个可能的变体中更改了gravitylayout_gravity的所有可能值!有什么想法吗?

编辑: 完整布局:

 <LinearLayout
        android:layout_width="match_parent"
        android:orientation="horizontal"
        android:layout_marginTop="0dp"
android:paddingTop="6dp"
        android:paddingBottom="5dp"
        android:layout_margin="3dp"
        android:focusable="true"
        android:focusableInTouchMode="true"
        android:layout_height="45dp">
        <Button
            android:layout_width="43dp"
            android:layout_height="wrap_content"
            android:background="@drawable/ham"
            android:id="@+id/hambtn"
            android:textColorHint="@color/black"
            android:layout_weight="0"
            />
        <android.support.design.widget.TextInputLayout
    android:id="@+id/text_input_layout_search"               
    android:layout_width="wrap_content"
    android:layout_weight="1"
    android:layout_gravity="top"
    android:gravity="top"                
    android:layout_height="wrap_content">
    <EditText
         android:background="@null"
         android:textColor="@color/black"
         android:layout_centerInParent="true"
         android:gravity="top"
         android:layout_gravity="top"
         android:id="@+id/SearchText"
         android:textColorLink="@color/black"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:textColorHint="@color/normatext"
     android:inputType="text"/>
 </android.support.design.widget.TextInputLayout>
        <Button
            android:layout_width="55dp"
            android:layout_weight="0"
            android:layout_height="match_parent"
            android:background="@drawable/my_button_bg"
            android:text="news"
            android:id="@+id/newsbtn"
         android:layout_marginLeft="8dp"
            android:layout_marginRight="6dp"
            android:paddingBottom="5dp"
            />
    </LinearLayout>

3 个答案:

答案 0 :(得分:0)

之前从未遇到过这个问题,但我会明确确定父级中没有填充且子级中没有边距。即:

@Override
public void onMapReady(GoogleMap googleMap) {
    Log.d(TAG, "onMapReady() method called");
    mMap = googleMap;
    mMap.getUiSettings().setZoomControlsEnabled(true);

    if (checkPermission())
        mMap.setMyLocationEnabled(true);
    mMap.setOnMyLocationButtonClickListener(this);
    mMap.setOnMyLocationClickListener(this);

    View locationButton = ((View) mapFragment.getView().findViewById(Integer.parseInt("1")).
            getParent()).findViewById(Integer.parseInt("2"));

    RelativeLayout.LayoutParams rlp = (RelativeLayout.LayoutParams) locationButton.getLayoutParams();

    rlp.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
    rlp.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);

    if (locationGlobal != null) updateMarker(locationGlobal);
}

答案 1 :(得分:0)

您可以删除EditText的背景标记,如果有效则回复我吗? 还提供完整的布局文件以获得精确的解决方案。

答案 2 :(得分:0)

我认为问题可能在你最顶层的LinearLayout视图中。

尝试删除这些行:

android:layout_marginTop="0dp"
android:paddingTop="6dp"
android:paddingBottom="5dp"
android:layout_margin="3dp"

并添加这些行以确保根本没有填充和边距:

android:padding="0dp"
android:layout_margin="0dp"

如果它确实解决了问题,您可以继续阅读有关填充和边距here的更多信息。 如果没有,我会怀疑你的TextInputLayout因内部EditText要求它同时位于顶部和中心而感到困惑。删除&#34;中心&#34;部分(例如从您的EditText中删除此 - android:layout_centerInParent="true"并检查它是否解决了您的问题:)