Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/215.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
更改标准android.R.布局选项的样式?_Android_Android Layout - Fatal编程技术网

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

更改标准android.R.布局选项的样式?,android,android-layout,Android,Android Layout,是否可以覆盖Android提供的标准布局?例如,是否可以将android.R.layout.simple\u list\u item\u选中的文本变小?或者我只需要做我自己的布局就可以了?谢谢 你必须自己做布局。为了创建自定义布局并使用标准适配器(如ArrayAdapter),您必须在自定义布局中指定与标准布局中相同的id。例如,选中的简单列表项目中的TextView的id为“@android:id/text1”(http://www.devdaily.com/java/jwarehouse/a

是否可以覆盖Android提供的标准布局?例如,是否可以将android.R.layout.simple\u list\u item\u选中的文本变小?或者我只需要做我自己的布局就可以了?谢谢

你必须自己做布局。为了创建自定义布局并使用标准适配器(如ArrayAdapter),您必须在自定义布局中指定与标准布局中相同的id。例如,选中的简单列表项目中的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/values/styles.xml):


包装内容
包装内容
正确的
14便士
@android:彩色/白色
5dp
5dp
5dp
包装内容
包装内容
5dp
5dp
@可绘制/文本视图\u边框
然后,当您希望将样式应用于已创建的布局文件(main.xml、res/layout/your_custom_layout.xml)中的元素时:



谢谢但是,如果您提供的id与标准布局中的id不同(或没有id),会出现什么问题?我复制了简单的\u列表\u项目\u检查布局并完全删除了id,当我这样加载它时,它似乎仍然可以正常工作:
ArrayAdapter adapter=new ArrayAdapter(context,R.layout.custom\u checked\u list,arraylist);setListAdapter(适配器)是,您是对的,因为“布局”==文本视图。但是对于其他标准布局,这应该不起作用。我的意思是布局管理器中包含多个视图的布局,例如线性布局,您可能会给出+1个好的观点。查看了适配器的实现。如果适配器不是用textViewResourceId启动的,ArrayAdapter不关心id。当没有提供资源id时,适配器假定整个ressource是一个TextView。否则,适配器将搜索给定的资源id(finViewById)(请参阅ArrayAdapter impl),谢谢,但我希望不必创建自己的布局文件,而是以某种方式继承android.R.layout.simple_list_item_checked,然后仅覆盖我要更改的特定值(在本例中为文本大小),但在本例中,您从头创建了自己的样式。到目前为止,您似乎无法直接更改android.R.layout中的标准布局,您需要按照207编写的版本进行修改。
<?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>
<?xml version="1.0" encoding="utf-8"?>
    <TableRow
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/questionTableRow"
        style="@style/questionTableRow"