Androidで提供されている標準のレイアウトを上書きすることはできますか?たとえば、android.R.layout.simple_list_item_checkedのテキストを小さくすることは可能ですか?それとも、自分のレイアウトを作るだけでいいですか?ありがとう。標準のandroid.R.layoutオプションのスタイルを変更しますか?
答えて
独自のレイアウトを作成する必要があります。カスタムレイアウトを作成し、標準のアダプタ(ArrayAdapterなど)を使用するには、カスタムレイアウトで標準レイアウトと同じIDを指定する必要があります。たとえば、simple_list_item_checkedのTextViewには、ID「@android:id/text1」(http://www.devdaily.com/java/jwarehouse/android-examples/platforms/android-2/data/res/layout/simple_list_item_checked)があります。 xml.shtml)。カスタムレイアウトでは、そのIDを指定します。したがって、カスタムアダプターを書く必要はありません。標準のXMLレイアウトをコピーして変更するだけです。
はい、そうです。ここで同じようなことが達成されています(RES /値/のstyles.xml):
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="ContactLabelTextView">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:gravity">right</item>
<item name="android:textSize">14sp</item>
<item name="android:textColor">@android:color/white</item>
<item name="android:layout_marginLeft">5dp</item>
<item name="android:layout_marginRight">5dp</item>
<item name="android:layout_marginTop">5dp</item>
</style>
<style name="questionTableRow">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_margin">5dp</item>
<item name="android:layout_marginLeft">5dp</item>
<item name="android:background">@drawable/textview_border</item>
</style>
</resources>
そして、あなたは(作成したmain.xmlていレイアウトファイル内の要素にスタイルを適用したい場合、RES /layout/your_custom_layout.xml):
<?xml version="1.0" encoding="utf-8"?>
<TableRow
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/questionTableRow"
style="@style/questionTableRow"
明らかに、これはtextViewを使用して行います。私はtextViewが特定のスタイルを取得する独自のコードの例を提供しました。私は実際にtextViewスタイルを適用することさえありませんが、tableRowにスタイルを適用した場所に貼り付けました。ちょうどxml要素に適用する方法を見ています。
これで必要なのはありますか?
ありがとうございましたが、自分のレイアウトファイルを作成する必要はなく、どうにかしてandroid.Routlay.simple_list_item_checkedを継承し、変更したい特定の値(この場合はテキストサイズ)をオーバーライドするだけですが、この例では自分のスタイルを最初から作りました。これまでのところ、android.R.layoutの標準レイアウトを直接変更することはできないようですが、207で書かれたバージョンを作成する必要があります。 – mattboy
- 1. Androidの標準スタイルのドキュメント
- 2. コードのスタイルと標準
- 3. OpenLayers標準コントロールボタンのCSSスタイル
- 4. ABAP標準コードの変更
- 5. phpcsのPEAR標準を変更する
- 6. geom_smoothの標準エラーカラーを変更する
- 7. インストールアプリケーションが変更されない場合の標準標準オブジェクトレイアウト
- 8. 標準のMediaElementコントロールのメディアコントロールを変更できますか?
- 9. 標準のContextMenuとしてListViewをスタイルします
- 10. IE9標準モードの変更のリスト
- 11. cssで標準モーダルウィンドウをスタイルする?
- 12. 標準ビューコントローラでテーブルビューセルを変更する '
- 13. Epicor ERP10標準システムコードを変更する
- 14. Webサービスのドキュメント標準/構造/スタイル
- 15. WebStorm 2016.3.3標準スタイルの再フォーマットコード
- 16. PayPalサブスクリプションの変更 - 支払い標準
- 17. CSS2標準の画像ホバーのアルファ値を変更しますか?
- 18. 標準出力、標準入出力オプション[ヌルヌル、ヌル、]「継承」
- 19. オプションの含意C++標準に入る
- 20. PHPファイル/ページを標準/標準URLに変換できます
- 21. Azure標準Blobストレージを標準Blobストレージアカウントに変更する方法は?
- 22. JavaScript標準スタイルではジストを認識しません
- 23. 標準のsqliteからpostgresデータベースに変更する
- 24. 標準のWordPress 4.4.2カテゴリウィジェットを変更してカスタムタクソノミを表示
- 25. ISO標準命名の標準はありますか?
- 26. IntelliJのESlint + JavaScriptの標準スタイル+コードスタイルスキームなし一貫
- 27. Netsuiteの標準フィールドのフィールドヘルプを変更するには?
- 28. 標準トランザクション、標準非トランザクション、Netsuite APIのカスタムレコードを意味しますか?
- 29. はCARRIAGECONTROL = 'NONE'オプションの標準f90 IOですか?
- 30. Inno Setupで「標準」インストールタイプをどのように変更できますか?
ありがとうございました。あなたは、標準のレイアウトにあるものとは異なるID(またはIDなし)を与えると、何がうまくいかないでしょうか?私はsimple_list_item_checkedレイアウトをコピーしてIDを完全に削除しました。このようにロードするとまだうまく動作しているようです: 'ArrayAdapter adapter = new ArrayAdapter (context、R.layout.custom_checked_list、arraylist); setListAdapter(adapter); ' –
mattboy
はい、あなたは正しいのですが、" layout "== a TextViewです。しかし、他の標準レイアウトでは、これはうまくいかないはずです.LayoutLayoutなど、LayoutManager内で複数のビューで構成されるレイアウトを意味します。 – 207
+1良い点があります。アダプターの実装を見ていた。アダプタがtextViewResourceIdで開始されていない場合、ArrayAdapterはidについて気にしません。リソースIDが指定されていない場合、アダプタは_whole_ ressourceがTextViewであるとみなします。それ以外の場合、アダプタは指定されたリソースID(finViewById)を検索します(ArrayAdapter impl https://github.com/android/platform_frameworks_base/blob/master/core/java/android/widget/ArrayAdapter.javaを参照) – 207