更改标准android.R.layout选项的样式?

时间:2012-03-23 23:07:50

标签: android android-layout

是否可以覆盖Android提供的标准布局?例如是否可以使android.R.layout.simple_list_item_checked的文本变小?或者我只需要制作自己的布局来做到这一点?谢谢。

2 个答案:

答案 0 :(得分:1)

您必须制作自己的布局。为了制作自定义布局并使用标准适配器(如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布局并改变你想要改变的东西

答案 1 :(得分:0)

是的,确实如此。这是一个类似的事情(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元素。

这可以满足您的需求吗?