相关疑难解决方法(0)

如何在android中探索样式

我正试图在Android中设置我的应用主题.但是,每个小部件本身都是一个令人痛苦的痛苦:我必须搜索主题特定小部件,然后创建一个样式,希望从小部件使用的相同样式派生.

当然,关于主题特定小部件的答案并不总是包含有关基本样式的信息,只包含特定颜色.

所以,不是接受鱼吃,你能教我钓鱼吗?

如何ObtainStyledAttributes()在窗口小部件构造函数中解释这些调用并从中提取样式?我该怎么说呢?

特别是,你能告诉我AlertDialog按钮颜色吗?什么样式定义棒棒糖扁平按钮+青色文字颜色?如果从AlertDialog源和ObtainStyledAttributes调用开始,我该如何获得该样式?

android styling

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

在新材质DatePicker中设置标题颜色

所以我试图改变我的DatePicker标题的颜色.尽管如此,它似乎并不那么容易.你可以在XML中这样做:

android:headerBackground="@color/myColor" />
Run Code Online (Sandbox Code Playgroud)

但是,似乎没有办法在代码中执行此操作.通常的制定者似乎并不明显(即datePicker.setHeaderBackground).

有任何想法吗?

java android material-design

9
推荐指数
1
解决办法
2524
查看次数

有没有一种通用的方法来查找适用于View的样式?

一般来说,为了改变任何UI元素的外观,您是如何找到要覆盖的主题属性的?

目前,我依赖于遍历框架源文件:values.xml中的主题定义(通常是支持库变体),attrs.xml中的属性定义以及R.styleable类文档.

但这完全是命中注定.这不仅耗费时间,而且有时我会完全错过,例如我一直在努力寻找如何在DatePickerDialog的OK和Cancel按钮中更改文本样式.您可以随意使用它作为示例,但如果您这样做,请概述您的发现过程.我正在寻找的答案是如何发现任何UI元素的应用样式,

还是没有确定的方法可以找到答案?你只需要知道吗?

android android-styles

6
推荐指数
1
解决办法
1137
查看次数

Android:如何更改 DatePicker 元素中所选日期的颜色?

我是 android 编程新手,我想DatePicker在我的布局中使用 element 。我能够成功使用它,但我不知道如何更改其选定的日期颜色。我在这个网站上读过很多帖子,他们谈论了改变DatePickerDialog. 我尝试对DatePicker元素遵循类似的方法,但无法做到。我可以更改日期的textColorusingcalendarTextColor属性。我的布局文件代码如下:

<LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center">

            <DatePicker
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/datePicker"
                android:datePickerMode="calendar"
                android:spinnersShown="false"
                android:layout_gravity="center"

                android:layout_marginTop="-52dp"
                android:layout_marginBottom="-20dp"
                style="@style/MyDatePickerStyleTheme"
                />

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

这是相应的 styles.xml 代码:

<style name="MyDatePickerStyleTheme" parent="@android:style/Theme.Holo.Light.Dialog">
    <item name="colorAccent"> #00ff00 </item>

    <item name="android:datePickerStyle">@style/MyDatePickerStyle</item>
    <item name="android:colorPrimary"> #00ff00 </item>
    <item name="android:colorPrimaryDark"> #00ff00 </item>
    <item name="android:colorAccent"> #00ff00 </item>
    <item name="android:backgroundTint"> #00ff00 </item>
    <!-- <item name="android:calendarTextColor"> #00ff00 </item> -->


</style>

<style name="MyDatePickerStyle">
    <item name="android:calendarTextColor"> #00ff00 </item>
</style>
Run Code Online (Sandbox Code Playgroud)

我想补充一些额外的观点:

  1. android:calendarTextColor如果我把它放在里面,属性就可以工作MyDatePickerStyleTheme,但是当我把它放在里面时,属性就不起作用MydatePickerStyle …

android datepicker android-layout

5
推荐指数
1
解决办法
5073
查看次数

更改DatePicker标头文本的颜色

我有一个日期选择器,它在Lollipop上显示标题,看起来像这样 日期选择器

我想将标题中大日期的颜色从黑色更改为白色,或者完全删除标题,我不在乎。我试图改变textColorPrimarytextColortitleTextColor却没有任何效果。

android datepicker datepickerdialog android-styles

4
推荐指数
1
解决办法
3795
查看次数

状态栏(通知栏)在使用CoordinatorLayout滚动时消失

我使用Android Studio中的默认模板使用CoordinatorLayout.

但是,当我向下滚动时,通知栏(状态栏)将滚出屏幕.这个效果可以在这个视频中看到. https://youtu.be/1oAqEpg7N4I

我已经包含了相关部分,但其余代码可以在这里找到:https: //github.com/vidia/MaterialDiningCourts/blob/master/app/src/main/res/layout/activity_meal_view.xml

在演示(cheesesquare)中,行为是我所期望的,将通知栏留在原位并且工具栏在其下方滚动.我已经搜索了这些布局并对我的代码进行了更改以匹配它们,但是无法找到必要的更改.

是什么导致通知栏滚动页面,为什么Android Studio中的示例有这种不正确的行为?

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/main_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context=".MealViewActivity">

<android.support.v4.view.ViewPager
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_behavior="@string/appbar_scrolling_view_behavior" />

<android.support.design.widget.AppBarLayout
    android:id="@+id/appbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        app:layout_scrollFlags="scroll|enterAlways|snap"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
        app:popupTheme="@style/ThemeOverlay.AppCompat.Light">

        <Spinner
            android:id="@+id/meal_chooser_spinner"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            />

    </android.support.v7.widget.Toolbar>

    <android.support.design.widget.TabLayout
        android:id="@+id/tabs"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/AppTabLayout"
        android:foregroundGravity="top"
        app:tabIndicatorColor="@color/tabSelectedIndicatorColor"/>
</android.support.design.widget.AppBarLayout>
Run Code Online (Sandbox Code Playgroud)

和styles.xml,虽然我已经从这个文件中删除了我的自定义主题,但它没有帮助解决这个问题.

<resources>

<!-- Base application theme. -->
<style name="AppTheme" parent="@style/Theme.AppCompat.Light">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item> …
Run Code Online (Sandbox Code Playgroud)

android android-layout

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

更改DatePicker背景颜色

我试图DatePicker在另一个活动的顶部显示一个对话框,正在发生的是它以某种方式继承了它的颜色。

我希望它具有绿色的标头和白色的背景, 像这个例子

这是样式的节选

<style name="DatePickerDialog" parent="@android:style/Theme.Holo.Light">
    <item name="android:windowFrame">@null</item>
    <item name="android:windowIsFloating">true</item>
    <item name="android:windowIsTranslucent">true</item>
    <item name="colorAccent">@color/primary</item>
</style>
Run Code Online (Sandbox Code Playgroud)

这段代码用来弹出 DatePicker

    DatePickerDialog datepicker = new DatePickerDialog(this, R.style.DatePickerDialog, new DatePickerDialog.OnDateSetListener() {

        public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
            TextView newdate = (TextView) findViewById(R.id.newdate);
            Date date = getDate(year, monthOfYear, dayOfMonth);
            DateFormat dateformat = new SimpleDateFormat(getResources().getString(R.string.date_format_full));
            newdate.setText(dateformat.format(date));
        }
    }, newCalendar.get(Calendar.YEAR), newCalendar.get(Calendar.MONTH), newCalendar.get(Calendar.DAY_OF_MONTH));

    datepicker.show();
Run Code Online (Sandbox Code Playgroud)

但是,它以全绿色显示

如果我在样式中指定白色背景, 它也覆盖标题和按钮

    <item name="android:background">@color/app_background</item>
Run Code Online (Sandbox Code Playgroud)

我尝试过的最后一件事是AlertDialog.THEME_DEVICE_DEFAULT_DARK用作DatePicker主题

DatePickerDialog datepicker = new DatePickerDialog(this, 
AlertDialog.THEME_DEVICE_DEFAULT_DARK, new 
DatePickerDialog.OnDateSetListener() 
Run Code Online (Sandbox Code Playgroud)

但是它仍然会以绿色显示整个对话框

这是我从中打开对话框的活动的样式

<style …
Run Code Online (Sandbox Code Playgroud)

android datepicker

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

DatePicker不可见按钮

在此处输入图片说明

如您所知,我正在使用日期选择器(不同的语言。顶部写于2015年11月)。

我使用的是OnClickListener,当a1单击EditText 时,将弹出DatePicker对话框,您将能够选择日期,完成后您会在EditText中收到日期。

但是我在对话框的确认按钮和选择年份方面遇到了麻烦,它们是不可见的,尽管看不到它们,但我只能单击它们。

如何启用/查看构型和年份日期选择按钮?

Activity.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_first_entry"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    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="com.none.myapplication.firstEntry">
<EditText
        android:id="@+id/a1"
        android:layout_below="@+id/btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

Activity.java

private EditText a1;
private DatePickerDialog fromDatePickerDialog;
private SimpleDateFormat dateFormatter;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_first_entry);


    dateFormatter = new SimpleDateFormat("dd-MM-yyyy");

    findViewsById();

    setDateTimeField();

}
private void findViewsById() {
    a1 = (EditText) findViewById(R.id.a1);
    a1.setInputType(InputType.TYPE_NULL);
    a1.requestFocus();
}

private void setDateTimeField() {
    a1.setOnClickListener(this);

    Calendar newCalendar = Calendar.getInstance();
    fromDatePickerDialog = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() …
Run Code Online (Sandbox Code Playgroud)

java xml android datepicker

0
推荐指数
1
解决办法
1271
查看次数