当前位置: 首页 > 知识库问答 >
问题:

重写片段、视图组或小部件的textColorPrimary、textColorSecondary-AppCompact

夹谷浩宕
2023-03-14

在AppCompact中,我们将colorPrimary、colorPrimaryDark、colorAccent、textColorPrimary等属性用于应用主题。

我想知道我们可以覆盖或改变这些颜色在一个片段或一个视图组不同的颜色。例如,我们是否可以只为NavigationView更改这些颜色,或者我们是否可以只为片段中的ExpandableListView更改这些颜色。

编辑:
我尝试用不同的样式重写,但没有重写

<style name="DarkText" parent="AppTheme">
    <item name="android:textColorPrimary">@color/black</item>

    <item name="android:textColorSecondary">@color/black</item>
</style>

<ExpandableListView
    android:layout_height="match_parent"
    android:theme="@style/DarkText"
    android:groupIndicator="@android:color/transparent"
    android:layout_width="match_parent"/>

适配器中得我得ChildVeiw:

final String childText = (String) getChild(groupPosition, childPosition);

    if (convertView == null) {
        LayoutInflater infalInflater = (LayoutInflater) this._context
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        convertView = infalInflater.inflate(R.layout.list_item, null);
    }

    TextView txtListChild = (TextView) convertView
            .findViewById(R.id.lblListItem);

    txtListChild.setText(childText);

请注意:我不想在r.layout.list_item中使用txtlistchild.settextcolor或android:textcolor=“@Color/black”更改文本的颜色

共有2个答案

印曜灿
2023-03-14

是的,你可以这样做

<ExpandableListView
    android:theme="@style/AnotherTheme"/>

编辑:

将“inflate”行更改为“替换parent(如果需要)”

convertView = infalInflater.inflate(R.layout.list_item, parent, false);
强硕
2023-03-14

尝试重写数组适配器中的getview()

ArrayAdapter<String> adapter = new ArrayAdapter<String>(getApplicationContext(), 
        android.R.layout.simple_list_item_1, mStringList) {
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View view = super.getView(position, convertView, parent);
        TextView text = (TextView) view.findViewById(android.R.id.text1);
        text.setTextColor(Color.BLACK);
        return view;
    }
};
 类似资料:
  • 问题内容: 就整个应用程序而言,这些内容分别包含什么内容? 更具体地说,在主题中更改主题中的每个主题会改变我的整个应用程序吗?我希望按钮的文本颜色与我的文本视图颜色不同;是一个小学,另一个中学? 与这些条款有关的任何信息都将受到赞赏! 问题答案: TextColor只是xml属性,用于为任何给定视图的文本设置颜色。 TextColorPrimary是启用的按钮和大文本视图的默认文本颜色。 Text

  • 我正在写一个使用片段的简单示例。在主体活动中,有两个片段。第一个片段有一些文本视图,第二个片段有一些按钮。当用户点击textview时,文本打开按钮将被更改。 activity_main.xml mainactivity.java contentFrag.java 我没有编写控制按钮的操作,只是生成onclick事件。但是,我弄错了。请帮助我修复错误,并继续完成我的任务。

  • 问题内容: 我搜索了许多看起来像这样的问题,但没有找到我的答案。 我有一个活动,该活动具有3个可通过操作栏访问的选项卡。我通过添加3个片段来实现这一点,这些片段使我自定义视图扩展了视图类。 在数据库更改的那一刻,我尝试通过调用invalidate()/ postinvalidate()刷新选项卡中的视图,但这不起作用。正如我考虑的其他许多选项一样,调用片段的onCreateView也是如此。 但是

  • 我正在尝试实现BottomNavigationView,到目前为止很成功。目前正在尝试实现片段到片段的移动,这也很成功,但不知何故,当我从一个片段[广播]移动到另一个[流]时,导航栏应该突出显示图标[流],但它没有发生我可以通过片段本身设置突出显示属性吗?下面是我的应用程序的代码和快照: 主要活动。Java语言 放射性碎片。Java语言 StreamFragment。Java语言

  • 我一整天都被困在这个问题上,我似乎找不到一个适合我的情况的答案,足以让我使用。 当我单击一个列表项时,比如Blue,在Portraint中,我希望它显示一个新的片段,这是一个蓝色的屏幕,而在Sandwork中,它在半个屏幕上显示该片段,在另一个屏幕上显示listview。我正在使用ActionBarSherlock和碎片来完成这一点。 我从里到外构建了它,所以我从一个列表开始,它按照我想要的方式工

  • 我正在尝试更新以下应用程序版本,它因未定义的问题崩溃。这是我的日志 在我的MainActivity中,除了另一个活动外,我还使用NavigationView打开了两个片段。在调试模式下,一旦调试器获取默认片段的getItem()并转到onCreateView(),它就会正常地通过扩展布局启动,但一旦返回其视图,它就会崩溃,并出现最后一个异常。 例外情况不涉及碰撞线。所以,我试图寻找这个问题。我发现