1

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

<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 很漂亮,但没有获得焦点,因此无法输入文本(非常有用)。它可以很好地从布局直接向复合视图添加值,但我想从一个舒适的主题来做。

提前致谢!

4

1 回答 1

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>   
于 2013-07-28T17:41:37.893 回答