Android HTC One将编辑文本填充设置为0

Android HTC One将编辑文本填充设置为0,android,android-layout,Android,Android Layout,如问题所述,我遇到了一些奇怪的行为,在运行安卓4.4的HTC One上,我的左拖拽功能没有任何左填充 我看到的布局是 <LinearLayout> <include layout="@layout/search_bar" /> <!-- Some Fragment layout information --> </LinearLayout> 在搜索栏内,我有一个布局,看起来像 <FrameLayout andr

如问题所述,我遇到了一些奇怪的行为,在运行安卓4.4的HTC One上,我的左拖拽功能没有任何左填充

我看到的布局是

<LinearLayout>

   <include layout="@layout/search_bar" />

   <!-- Some Fragment layout information -->

</LinearLayout>

在搜索栏内,我有一个布局,看起来像

<FrameLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:padding="8dp">

    <EditText
        android:layout_width="match_parent"
        android:layout_height="56dp"
        style="@style/SearchBox.SingleSearchBar" />
 </FrameLayout>

SearchBox.SingleSearchBar样式看起来像(在对样式层次结构进行一些调整之后)


错误的
中心垂直
符合事实的
1.
actionSearch | flagNoExtractUi
符合事实的
符合事实的
@可拉丝/灰色放大镜
符合事实的
@尺寸/搜索\u可绘制\u填充
@尺寸/搜索\u可绘制\u填充
@尺寸/搜索\u可绘制\u填充
@尺寸/搜索\u可绘制\u填充
@尺寸/搜索\u可绘制\u填充
1.
@可绘图/搜索栏选择器
@样式/文本外观搜索框
@可绘制/搜索框\u光标
在我见过的每一台设备上,除了HTC One之外,都运行得很好:左边的可绘制内容在搜索中填充,从左边开始填充,在可绘制内容和文本之间有适当的填充。但是,由于某些原因,在HTC One上,文本框的左边缘和可绘图区域之间没有填充

我记录了getPaddingLeft()和getPaddingTop的值,发现在HTC One上它们是0px,而在三星GS4上它们是48像素,考虑到搜索可绘制的填充是16度,这是有道理的


这有什么办法吗?我是否遗漏了一些非常愚蠢的东西,迫使我在代码中调用setPadding来实现这一点?

请检查您的背景可绘制搜索栏选择器

<item name="android:background">@drawable/search_bar_selector</item>
@drawable/search\u bar\u选择器
设置背景可以将填充值重置为0(请参阅)

解决此问题的一个解决方案是在文件搜索栏选择器中再次设置填充值(好的解决方案,因为您不需要以编程方式设置填充值)


我建议您在另一台HTC One设备上试用。很多时候,这段代码不适用于特定的设备&这不是模型问题。
<item name="android:background">@drawable/search_bar_selector</item>
<padding android:bottom="@dimen/search_drawable_padding" android:left="@dimen/search_drawable_padding" android:right="@dimen/search_drawable_padding" android:top="@dimen/search_drawable_padding" />