复合视图中的样式化EditText无法获得焦点

时间:2013-07-28 17:10:23

标签: android android-edittext android-theme

我做了一个非常简单的复合视图:

<LinearLayout>
   <ImageView />
   <EditText />
</LinearLayout>

一切正常,直到我决定在我的项目中设置编辑文本的样式:主题:

    <style name="Theme.MyProject" parent="Theme.Sherlock.Light.DarkActionBar">
        <item name="actionBarStyle">@style/Widget.Theme.MyProject.ActionBar</item>
        <item name="android:actionBarStyle" tools:ignore="NewApi">@style/Widget.Playout.ActionBar</item>
        <item name="android:buttonStyle">@style/Theme.Theme.MyProject.Button</item>
        <item name="android:editTextStyle">@style/Theme.Theme.MyProject.EditText</item>
    </style>

<style name="Theme.Playout.EditText">
        <item name="android:textSize">15sp</item>
        <item name="android:textColor">@color/field_text</item>
        <item name="android:background">@color/field</item>
        <item name="android:minHeight">50dp</item>
        <item name="android:padding">5dp</item>
        <item name="android:gravity">center</item>
        <item name="android:fontFamily">sans-serif-light</item>
    </style> 

现在我的EditText非常漂亮,但没有获得焦点,因此无法输入文字(非常有用)。它可以很好地从布局直接向Compound视图添加值,但我想从一个舒适的主题中做到这一点。

提前致谢!

1 个答案:

答案 0 :(得分:1)

试试这个:

<style name="Theme.Playout.EditText">
    <item name="android:textSize">15sp</item>
    <item name="android:textColor">@color/field_text</item>
    <item name="android:background">@color/field</item>
    <item name="android:minHeight">50dp</item>
    <item name="android:padding">5dp</item>
    <item name="android:gravity">center</item>
    <item name="android:fontFamily">sans-serif-light</item>

    <!-- I added these attributes: -->
    <item name="android:focusable">true</item>
    <item name="android:focusableInTouchMode">true</item>
    <item name="android:clickable">true</item>
</style>