Меняется стиль стандартных опций android.R.layout? - PullRequest
3 голосов
/ 24 марта 2012

Можно ли переопределить стандартные макеты, которые предоставляются в Android?Можно ли, например, сделать текст меньше для android.R.layout.simple_list_item_checked?Или мне просто нужно сделать свой собственный макет, чтобы сделать это?Благодарю.

Ответы [ 2 ]

1 голос
/ 24 марта 2012

Вы должны сделать свой собственный макет.Чтобы создать пользовательский макет и использовать стандартный адаптер (например, ArrayAdapter), вы должны указать те же идентификаторы в вашем пользовательском макете, что и в стандартных макетах.Например, TextView в simple_list_item_checked имеет идентификатор "@android: id / text1" (http://www.devdaily.com/java/jwarehouse/android-examples/platforms/android-2/data/res/layout/simple_list_item_checked.xml.shtml).. В своем пользовательском макете вы указываете этот идентификатор. Таким образом, вам не нужно писать собственный адаптер. Поэтому лучше всего просто скопироватьстандартный макет XML и изменить то, что вы хотите изменить

0 голосов
/ 24 марта 2012

Да, это так. Вот аналогичная вещь (res / values ​​/ 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.

Делает ли это то, что вам нужно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...