9

フレームワーククラスの1つを拡張するカスタムビューがあります。AndroidのほとんどViewのsには、いくつかのデフォルト属性が定義されています(Buttonクリック可能であるなど、によって設定されandroid:clickable="true"ます)。

カスタムビューにアプリケーション全体のデフォルトを提供するにはどうすればよいですか?

4

3 に答える 3

15

私はこうして自分の問題を解決しました:

res / values / attrs.xml

<resources>
    <attr name="customViewStyle" type="reference" />
</resources>

res / values / styles.xml

<resources>
    <style name="AppTheme" parent="@android:style/Theme.Light">
        <item name="android:background">@drawable/bg_light</item>
        <item name="customViewStyle">@style/CustomView</item>
    </style>

    <style name="CustomView">
        <item name="android:clickable">true</item>
        <item name="android:focusable">true</item>
        <item name="android:focusableInTouchMode">true</item>
    </style>
</resources>

次に、マニフェストのテーマをAppThemeに設定するだけです。これは、AppThemeの定義のandroid:[widget]Style代わりにを使用する標準ウィジェットでも機能します。customViewStyle

于 2012-05-22T17:49:03.073 に答える
1

さらに、このレイアウトのスタイルを作成し、ビューを使用するスタイルを設定することもできます。

ソース:http ://developer.android.com/guide/topics/resources/style-resource.html

于 2012-05-17T17:52:48.490 に答える
0

AttributeSet引数を取るViewコンストラクターをオーバーライドし、スーパークラスコンストラクターに渡すために独自の変更されたAttributeSetを作成する必要があると思います。

編集:さらに簡単に、Viewサブクラスコンストラクターを呼び出すsetClickableなどして、デフォルトを必要なものに変更します。

于 2012-05-18T02:50:13.467 に答える