标签: android-styles

禁用时,从属首选项显示错误的颜色字体

在我的应用程序中,我使用了几个首选项,包括一些使用以下属性与依赖项相关的首选项:android:dependency="pref_key".

基本上,如果未选中该复选框,则会禁用以下所有其他首选项:

没有样式定义的首选项

当我在自定义主题中设置以下3行时,会出现问题:

<style name="AppThemeOrange" parent="@style/AppTheme">
        <item name="android:textColorPrimary">@color/OrangeMain</item>
        <item name="android:textColorSecondary">@color/OrangeDark</item>
        <item name="android:textColorTertiary">@color/OrangeLight</item>
(...)
Run Code Online (Sandbox Code Playgroud)

在这3个属性上定义的颜色也会覆盖禁用的首选项的默认字体颜色:

带样式定义的首选项

首选项仍然被禁用,但显示的字体相反相反...

我搜索了默认的Holo Light样式和主题,但我不知道这个定义的位置以及为什么上面的样式会覆盖这些样式.

有没有人遇到过这个问题?

android android-preferences android-theme android-styles

11
推荐指数
1
解决办法
2403
查看次数

按钮不适用的Android主题样式

我的主要活动视图中有三个简单的按钮.我想要做的是对我的所有按钮应用按钮式,但我没有这样做.

这是我的xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/minecraft_portrait"
    android:alpha="0.75"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <TextView
        android:id="@+id/txtAppName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:text="@string/app_name_readable"
        android:textSize="32sp"
        android:textColor="@android:color/white" />

    <Button
        android:id="@+id/btnCrafting"
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:background="@drawable/button_selector"
        android:onClick="craftingButtonClicked"
        android:text="@string/crafting" />

    <Button
        android:id="@+id/btnServerCommands"
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@id/btnCrafting"
        android:layout_below="@id/btnCrafting"
        android:layout_marginTop="20dp"
        android:background="@drawable/button_selector"
        android:onClick="commandsButtonClicked"
        android:textColor="@android:color/white"
        android:text="@string/servercommands" />

    <Button
        android:id="@+id/btnVideos"
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@id/btnServerCommands"
        android:layout_below="@id/btnServerCommands"
        android:layout_marginTop="20dp"
        android:background="@drawable/button_selector"
        android:onClick="videosButtonClicked"
        android:text="@string/videos" />

</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

这是res/values文件夹中的style.xml:

<resources xmlns:android="http://schemas.android.com/apk/res/android">

    <style name="AppBaseTheme" parent="android:Theme.Light">
    </style>

    <!-- Application theme. -->
    <style name="AppTheme" parent="AppBaseTheme">
        <item name="android:buttonStyle">@style/ButtonTheme</item>
    </style>

    <style name="ButtonTheme" parent="android:Widget.Button">
        <item …
Run Code Online (Sandbox Code Playgroud)

android android-theme android-styles

11
推荐指数
1
解决办法
1万
查看次数

通过样式更改Android Dialog按钮文本大小

我试图通过样式扩大我的所有应用程序对话框按钮上的文本大小.以下代码将更改按钮背景颜色甚至文本大小写,但由于某种原因,textSize项目不符合:

<style name="MyAppTheme" parent="@android:style/Theme.Holo">
    <item name="android:dialogTheme">@style/MyApp.Dialog</item>
    <item name="android:alertDialogTheme">@style/MyApp.Dialog.Alert</item>
</style>

<style name="MyApp.Dialog" parent="@android:style/Theme.Holo.Dialog">
    <item name="android:borderlessButtonStyle">@style/MyApp.BorderlessButton</item>
</style>

<style name="MyApp.Dialog.Alert" parent="@style/MyApp.Dialog">
    <item name="android:windowBackground">@android:color/transparent</item>
</style>

<style name="MyApp.BorderlessButton" parent="@android:style/Widget.Holo.Button.Borderless">
    <item name="android:textSize">50sp</item>
    <item name="android:textAllCaps">true</item>
    <item name="android:background">#800</item>
</style>
Run Code Online (Sandbox Code Playgroud)

带有背景颜色和textAllCaps但没有文字大小的对话框按钮

为什么没有读取textSize?我需要做些什么来扩大它?

android android-layout android-theme android-dialog android-styles

11
推荐指数
2
解决办法
1万
查看次数

DatePicker有背景

问题是我的日期选择器在日期选择器后面有一个丑陋的白色背景

白色背景

我只想让那个背景消失

这是我的代码

 public void selectDate(View view) {
    DialogFragment newFragment = new SelectDateFragment();
    newFragment.show(Master_.fragmentManager, "DatePicker");
}

public void populateSetDate(int year, int month, int day) {


        Birthdate.setText(year + "-" + month + "-" + day);

}

public class SelectDateFragment extends DialogFragment implements
        DatePickerDialog.OnDateSetListener {
    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        final Calendar calendar = Calendar.getInstance();
        int yy = calendar.get(Calendar.YEAR);
        int mm = calendar.get(Calendar.MONTH);
        int dd = calendar.get(Calendar.DAY_OF_MONTH);

    DatePickerDialog dialog =new DatePickerDialog(mActivity,R.style.jehadStyle, this, yy, mm, dd);  
    dialog.getDatePicker().setMaxDate(calendar.getTimeInMillis());  

    return dialog ;
    }

    public …
Run Code Online (Sandbox Code Playgroud)

android android-datepicker android-styles

11
推荐指数
1
解决办法
6197
查看次数

删除android上TabLayout下面的阴影

我正在尝试在使用TabLayout时删除选项卡下面的阴影,TabLayout是在普通布局中定义的(而不是作为工具栏或操作栏的一部分).

将主题设置为

<item name="android:windowContentOverlay">@null<item/>
Run Code Online (Sandbox Code Playgroud)

要么

<item name="windowContentOverlay">@null<item/>
Run Code Online (Sandbox Code Playgroud)

没用.

此外,将高程设置为0也没有帮助.

 <android.support.design.widget.TabLayout xmlns:app="http://schemas.android.com/apk/res-auto"
                android:id="@+id/sliding_tabs"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="center_horizontal"
                android:layout_marginLeft="10dp"
                android:layout_marginRight="10dp"
                android:background="@android:color/white"
                app:backgroundTint="@android:color/transparent"
                app:tabIndicatorColor="@android:color/transparent"
                app:tabMode="scrollable"/>
Run Code Online (Sandbox Code Playgroud)

android android-styles android-tablayout

11
推荐指数
2
解决办法
9868
查看次数

如何覆盖具有自己的Activity的库的样式

我有一个库,它有自己的活动与colorPrimary和colorPrimaryDark属性.在使用此库的应用程序中,这些颜色属性有不同的值.

有没有办法让库使用调用者应用程序提供的样式?

因此,最后,如果应用程序具有绿色工具栏,则库中的活动将具有绿色工具栏,而不是库主题中定义的工具栏.

这是图书馆的主题:

<style name="LibraryTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="colorPrimary">@color/red</item>
    <item name="colorPrimaryDark">@color/dark_red</item>
</style>
Run Code Online (Sandbox Code Playgroud)

这是示例应用程序的主题:

<style name="SampleAppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="colorPrimary">@color/green</item>
    <item name="colorPrimaryDark">@color/dark_green</item>
    <item name="colorAccent">@color/accent_color</item>
</style>
Run Code Online (Sandbox Code Playgroud)

android android-library android-theme android-styles

11
推荐指数
1
解决办法
2264
查看次数

如何将主题应用于Android工具栏?

我花了大量的时间试图弄清楚如何将一些简单的样式应用到工具栏,但我完全被难倒了.具体来说,我想更改标题和副标题的颜色以及溢出菜单图标(三个点).我可以在布局中成功设置文本颜色,但不能在主题中设置,我不知道为什么.

    <android.support.v7.widget.Toolbar
    theme="@style/Toolbar"
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:background="@color/orange"
    app:popupTheme="@style/AppTheme.PopupOverlay"
    />
Run Code Online (Sandbox Code Playgroud)

styles.xml:

    <style name="Toolbar" parent="Widget.AppCompat.Toolbar">
    <item name="titleTextStyle">@style/ToolbarTitle</item>
    <item name="titleTextAppearance">@style/ToolbarTitleTextAppearance</item>
    <item name="popupTheme">@style/AppTheme.PopupOverlay</item>
</style>

<style name="ToolbarTitle" parent="Base.TextAppearance.Widget.AppCompat.Toolbar.Title">
    <item name="titleTextAppearance">@style/ToolbarTitleTextAppearance</item>
    <item name="android:textColor">#FF0000</item>
</style>

<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light">
</style>
Run Code Online (Sandbox Code Playgroud)

PopupOverlay主题应用于溢出菜单弹出窗口,因此工具栏主题显然正在应用,但TextAppearance不起作用,文本仍然是黑色.我尝试了各种各样的替代形式但没有快乐.当我尝试某些东西并且它不起作用时,我不知道从哪里开始寻找理解原因.有关调试此类问题的提示是受欢迎的!失去几个小时到非常简单的UI样式变化是非常令人沮丧的,但布局,样式,主题和AppCompat的多个方面让我完全混淆和猜测.

android android-appcompat android-styles

11
推荐指数
1
解决办法
9498
查看次数

如何以编程方式使用OutlineBox创建TextInputLayout

我想用Widget.MaterialComponents.TextInputLayout.OutlinedBox样式创建TextInputLayout.我尝试了很多方法,但无法获得所需的结果.这是我的代码.

TextInputLayout textInputLayout = new TextInputLayout(getActivity(),null,R.style.Widget_MaterialComponents_TextInputLayout_OutlinedBox);
textInputLayout.setHint("My Hint");
TextInputEditText editText = new TextInputEditText(textInputLayout.getContext());
textInputLayout.addView(editText);
parentView.addView(textInputLayout);
Run Code Online (Sandbox Code Playgroud)

我也尝试过:

TextInputLayout textInputLayout = new TextInputLayout(getActivity(),null,TextInputLayout.BOX_BACKGROUND_OUTLINE);
Run Code Online (Sandbox Code Playgroud)

我想创建这样的视图.在此输入图像描述

android android-layout android-styles material-design textinputlayout

11
推荐指数
1
解决办法
3612
查看次数

如何设置android的操作栏选项卡的高度

基本上,我想改变动作栏中标签的高度.在stackoverflow上已多次询问此问题,例如:

ActionBar标签高度

我已经尝试了大多数解决方案,但没有任何效果,这是我的代码.

    <style name="CustomActionBarTheme" parent="@android:style/Theme.Holo">
    <item name="android:scrollHorizontally">false</item>
    <item name="android:paddingLeft">0dp</item>
    <item name="android:paddingRight">0dp</item>
    <item name="android:actionBarSize">80dp</item>
    <item name="actionBarSize">80dp</item>
    <item name="android:actionBarTabStyle">@style/ActionBarTabStyle</item>
</style>

<style name="ActionBarTabStyle" parent="@android:style/Widget.Holo.ActionBar.TabView">
    <item name="android:height">80dp</item>
</style>
Run Code Online (Sandbox Code Playgroud)

显然,代码只会改变操作栏高度,而不是我想要的标签栏高度.这是图片供参考:

在此输入图像描述 在此输入图像描述

如您所见,底部的操作栏更高.但在操作栏模式下,标签高度保持不变.

为什么会这样?我错过了什么???先感谢您 :).

解决了,如:

带有导航标签的ActionBar会根据屏幕方向更改高度

https://code.google.com/p/android/issues/detail?id=41792

显然这是一个来自android sdk的bug ...从来没有遇到过像这样的bug :(.希望这有助于其他人.

android android-layout android-fragments android-tabs android-styles

10
推荐指数
1
解决办法
1万
查看次数

资源 android:attr/android:progressBarStyle 未找到

在将 Android Studio 更新到最新版本后尝试构建项目时,出现此错误。我收到以下错误:

C:\Users\YaCn.gradle\caches\transforms-2\files-2.1\5502c0022567bdcff063e0fb4352b137\folioreader-0.3.3\res\layout\progress_dialog.xml:10: AAPT: 错误/资源栏:androidprogressattr成立。

那个 XML :

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <LinearLayout android:id="@+id/layout_loading"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical"
        android:gravity="center">
        <ProgressBar android:id="@+id/loading"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            style="?android:attr/android:progressBarStyle"/>
        <TextView android:id="@+id/label_loading"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="4dp"
            android:textSize="18sp"
            android:textColor="@android:color/white"
            android:text="@string/loading"/>
    </LinearLayout>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

构建gradle文件:

   apply plugin: 'com.android.application'

android {
    compileSdkVersion 27
    defaultConfig {
        applicationId "com.example.admin.hashtab"
        minSdkVersion 16
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
        multiDexEnabled true

        manifestPlaceholders = [manifestApplicationId          : "${applicationId}",
                                onesignal_app_id               : "654bcb8c-90a6-4012-924a-e18e5787a7de",
                                onesignal_google_project_number: "3520309722"]

        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles …
Run Code Online (Sandbox Code Playgroud)

android android-progressbar android-xml android-styles

10
推荐指数
2
解决办法
3360
查看次数