小编Sha*_*ika的帖子

Android 主题:在 Material3 中将状态栏颜色设置为操作栏颜色

我正在将应用程序的 Material Design 主题从 V2 (1.4.0) 迁移到 V3 (1.5.0)。

与 不同Theme.MaterialComponents.DayNight,它具有使用操作栏主色的 DarkActionBar 子样式,但Theme.Material3.DayNight没有 DarkActionBar 子样式。

我无法弄清楚默认设置中操作栏使用什么颜色。

这就是我当前的应用程序主题的显示方式:

应用截图

可以看到,我的主色是蓝色,但操作栏已自动使用主色的阴影/alpha 进行着色。操作栏的十六进制颜色表示法不是由我定义的。我尝试将状态栏设置为在 color.xml 文件中定义的所有各种蓝色色调,但它们都不是完美的匹配。

有人可以解释一下操作栏颜色是如何确定的,或者我如何将状态栏设置为与操作栏相同的颜色?

颜色.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="black">#000000</color>
    <color name="white">#ffffff</color>

    <color name="black_alpha_020">#33000000</color>
    <color name="white_alpha_060">#99ffffff</color>

    <color name="blue_50">#e3f2fd</color>
    <color name="blue_50_bit_black">#E4F0F5</color>
    <color name="blue_100">#bbdefb</color>
    <color name="blue_300">#64b5f6</color>
    <color name="blue_500">#2196f3</color>
    <color name="blue_700">#1976d2</color>
    <color name="blue_a100">#82b1ff</color>

    <color name="blue_black_3_3">#072451</color>
    <color name="blue_black_3_3_bit_black">#031228</color>
    <color name="blue_white_5_6">#fafdff</color>
    <color name="blue_black_5_6">#061929</color>
    <color name="blue_black_10_2">#CEDCE6</color>
    <color name="blue500_black_5_6">#26282A</color>

    <color name="blue_50_alpha_060">#99e3f2fd</color>

    <color name="blue_grey_700">#455a64</color>
    <color name="blue_grey_800">#37474f</color>

    <color name="amber_100">#ffecb3</color>
    <color name="amber_700">#ffa000</color>
    <color name="amber_black_3_4">#401C00</color>

    <color name="red_50">#ffebee</color>
    <color …
Run Code Online (Sandbox Code Playgroud)

android android-theme material-design

21
推荐指数
3
解决办法
2万
查看次数

在Android键盘中每两个键输出一个字符

我正在Android中为Amharic语言设计自定义键盘,但以下内容适用于许多其他非英语语言.

两个或多个键组合转换为一个字符.因此,如果用户键入'S',键盘将输出'ሰ'...如果他们跟着字母'A',则'ሰ'将替换为'ሳ'.

我设法得到一个解决方案,如下所示,通过查看光标前的字符并根据Map检查它.但是,我想知道是否有更简单,更清洁的解决方案.

public void onKey(int primaryCode, int[] keyCodes) {
    InputConnection ic = getCurrentInputConnection();
    HashMap<String, Integer> en_to_am = new HashMap<String, Integer>();
    CharSequence pChar = ic.getTextBeforeCursor(1, 0);
    int outKey = 0;

    //build a hashmap of 'existing character' + 'new key code' = 'output key code'
    en_to_am.put("83", 4656);
    en_to_am.put("?65", 4659);

    try {
        //see if config exists in hashmap for 'existing character' + 'new key code'
        if (en_to_am.get(pChar.toString() + primaryCode) != null) {
            outKey = en_to_am.get(pChar.toString() + primaryCode);
            ic.deleteSurroundingText(1, 0);
        } else { …
Run Code Online (Sandbox Code Playgroud)

java android locale non-latin android-softkeyboard

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

Yii2/PHP/IIS7 - URL重写和文件权限(漂亮的URL问题)

我有一个带有以下文本的web.config文件,虽然与我的问题无关...

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="Pretty URL">
                    <match url="." ignoreCase="false" />
                    <conditions logicalGrouping="MatchAll">
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
                    </conditions>
                    <action type="Rewrite" url="index.php" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>
Run Code Online (Sandbox Code Playgroud)

通常当我在我的Windows机器上开发时,带有我的PHP源的文件夹对所有经过身份验证的用户都有权限,而我Yii2网站中的漂亮URL工作没有任何问题.

现在,我的下一个项目要求我部署在非管理员用户也将使用的Windows机器上,我测试了将Yii2网站部署到一个文件夹,使IUSR用户能够列出,读取和执行文件.

该网站有效,但漂亮的网址没有.

如果我使用常规身份验证的用户和SYSTEM权限将文件夹内容复制到另一个位置,它将按预期工作.

我想我缺少一些权限,可以使漂亮的URL与IIS7 URL重写模块一起正常工作,但不确定是什么.

php iis-7 pretty-urls url-rewrite-module yii2

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

将额外的css类添加到Yii2 jui datepicker

我试图让Yii2中的jui DatePicker的文本框看起来更像其他文本框,通过在渲染时将"form-control"添加到输入控件的类名.

我尝试使用像这样的clientOptions ...

'clientOptions' => [ 'class' => 'form-control' ]

'clientOptions' => [ 'className' => 'form-control' ]
Run Code Online (Sandbox Code Playgroud)

...以及作为小部件选项,但我无法弄清楚这一点.

与Bootstrap Datetimepicker相比,jui看起来真的很难看.

我有什么想法可以添加一个类或使其看起来像其他文本框?

我有一个简单的日期选择器,没有花哨的格式,但我在我的模型中使用它.

html css php jquery-ui yii2

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

Yii2 Gridview中的分页和过滤

我在Yii2中使用了CRUD生成器,它为我的actionIndex控制器生成了以下代码......

public function actionIndex()
{
    $searchModel = new LeadSearch();
    $dataProvider = $searchModel->search(Yii::$app->request->queryParams);

    return $this->render('index', [
        'searchModel' => $searchModel,
        'dataProvider' => $dataProvider,
    ]);
}
Run Code Online (Sandbox Code Playgroud)

我试图对这个默认代码做两件事:

1)设置页面大小,使显示它的gridview只显示10行

2)修改$searchModel它只返回表中状态列匹配某些多个值(IN运算符)的记录...或者更好的是,所有与给定值不匹配的记录.

对于#1,我看到很多例子在使用时设置'分页' ActiveDataProvider,但没有search().这段代码对我不起作用......

$dataProvider = $searchModel->search(
    Yii::$app->request->queryParams, ['pagination' => [ 'pageSize' => 10 ]]
);
Run Code Online (Sandbox Code Playgroud)

对于#2,我知道我们可以通过将新的LeadSearch对象声明为...来进行过滤.

$searchModel = new LeadSearch([ 'status' => 'open' ]);
Run Code Online (Sandbox Code Playgroud)

......但这样的事情不起作用......

$searchModel = new LeadSearch([ 'status' => ['open', 'pending'] ]);
Run Code Online (Sandbox Code Playgroud)

pagination gridview filter yii2

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

AWS:无法将 Amazon QuickSight 连接到 RDS

我们在 West-1(加利福尼亚北部)有几个 MySQL RDS 实例,并希望使用 QuickSight 创建一些报告。第一个问题是 QuickSight 仅在 West-2(俄勒冈)可用并且没有显示我们的 RDS,所以我在 West-2 中创建了一个只读副本数据库。

我仍然无法连接到我的实例,并显示以下错误:连接失败。确保您的实例可从相应的 Amazon QuickSight IP 地址范围访问。

我已经在入站规则中创建了一个允许 IP 54.70.204.128/27 的安全组并将其应用于我的实例。最终允许我连接到实例的是将实例的“公开可用”字段设置为“是”。

但是,我的老板更喜欢它保持“否”,我们还能够使用 MySQL SSH 连接方法通过 DOMO 连接到非公共实例。

是否可以在不将“公共可访问”设置为“是”的情况下使 QuickSight 和 RDS 之间的连接正常工作?

mysql database-connection amazon-web-services amazon-rds amazon-quicksight

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

在Yii2 find()/ QueryBuilder中使用WHERE条件的SELECT子查询

我能够找到子查询构建的简单示例,但是当我需要包含WHERE条件时,我无法弄清楚或找不到解决方案.我试图模拟以下声明......

SELECT ParentTable.*, (SELECT MAX(ChildTable.NumberField) 
                       FROM ChildTable
                       WHERE ChildTable.FK_Id = ParentTable.Id)
FROM ParentTable
Run Code Online (Sandbox Code Playgroud)

猜猜我需要像......

$query = ParentClass::find()
        ->addSelect(
            ChildClass::find()
            ->where('childTable.fk_id=parentTable.id')
            ->max('childTable.field1')
        );
Run Code Online (Sandbox Code Playgroud)

但它给了我一个错误:找不到列:1054'where子句'中的未知列'parentTable.id'

编辑:包括实际的类/表名...

$endQuery = UnitSchedule::find()
            ->where('cm_courseschedule.id=cm_unitschedule.csch_id')
            ->max('cm_unitschedule.slot');
$query = CourseSchedule::find();
$query->addSelect($endQuery);
Run Code Online (Sandbox Code Playgroud)

mysql query-builder yii2

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

通过Chrome扩展程序使用PHPAuth/PHPAuth登录网站

我开发了一个Chrome扩展程序,它在我的网站上调用了一些API,后者又使用PHPAuth/PHPAuth进行身份验证.基本上,我让用户输入网站的用户名和密码作为扩展选项,我在我的网站上调用登录API,如下所示.

if (isset($_POST['email']) && isset($_POST['password'])) {
                $email = $_POST['email'];
                $password = $_POST['password'];

                if($auth->isLogged()) {
                    $userId = $auth->getSessionUID($_COOKIE[$authConfig->cookie_name]);
                    echo json_encode([
                                'userId' => $userId,
                            ]);
                    die();
                }

                $login = $auth->login($email, $password, true);

                if($login['error']) {
                    die($login['message']);
                } else {
                    $userId = $auth->getSessionUID($login['hash']);
                    echo json_encode([
                                'userId' => $userId,
                            ]);
                    die();
                }
            } else {
                die('Error');
            }
Run Code Online (Sandbox Code Playgroud)

这可以暂时考虑用户进行身份验证,但实际上并未将用户登录到网站中.换句话说,当我通过iFrame打开受密码保护的页面时,它会显示用户登录表单.

有人可以告诉我我做错了什么,或者更好的方式去做我需要的东西.

基本上,我保存用户每次登录时都需要保持登录并打开受保护的页面.

php authentication google-chrome-extension

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

从 Power BI Web 刷新 AWS RDS 数据库

我在 Power BI Desktop 中创建了一个报告,连接到 AWS RDS 数据库,并将其发布到 Power BI Web App,目的是从 Web 应用程序刷新数据集。

我尝试使用 MySQL 和 SQL Server(在 RDS 上)这样做。但是,Power BI Web 不允许我刷新数据集,而是希望我安装本地网关。

我不确定为什么这是一个要求,因为我的数据库位于云上而不是本地,并且位于公共 VPC 上。

是否可以在 Power BI Web 应用程序中刷新 AWS RDS 数据集?如何?

refresh gateway dataset amazon-web-services powerbi

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

Java中HashMap的文字声明

JavaScript,您可以一次声明对象的所有键和值组合,JSON如下所示...

var myJSON = {
    'key1' : 'value 1',
    'key2' : 'value 2',
    'key3' : 'value 3',
    'key4' : 'value 4',
    'key5' : 'value 5',
    'key6' : 'value 6'
};
Run Code Online (Sandbox Code Playgroud)

我不知道我们是否可以做类似的东西JavaHashMaps.

HashMap<String, String> map = new HashMap<String, String>(
    "Key 1", "Value 1",
    "Key 2", "Value 2",
    "Key 3", "Value 3"
);
Run Code Online (Sandbox Code Playgroud)

基本上,我需要这个作为一次只读的东西作为我的代码的其他部分的配置.我搜索并尝试了一些解决方案,但无法让它们工作.或者我有更好的方法吗?

java hashmap literals

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

Android/Java:如何跟踪 InputStream 的进度

我的 Android 应用程序中有以下代码,不确定是否是我的谷歌搜索技能,但找不到关于如何监控 InputStream 进度的好教程。

private void restoreFromUri(Uri uri) {
    try {
        InputStream is = getContentResolver().openInputStream(uri);
        ObjectInputStream ois = new ObjectInputStream(is);
        ArrayList<String> myList = (ArrayList) ois.readObject();
        ois.close();
        is.close();
    } catch (Exception e) {
        Snackbar.make(snackView, e.getMessage(), Snackbar.LENGTH_LONG).show();
    }
}
Run Code Online (Sandbox Code Playgroud)

上面的代码运行良好,但在内容来自 GMail 的情况下,即使是一个小文件也需要几秒钟来读取和填充 ArrayList。

是否可以显示带有文件/内容读取百分比的进度条?

java android uri inputstream objectinputstream

3
推荐指数
1
解决办法
1961
查看次数

Select2使用minimumInputLength时清除选择

我有一个选择输入字段,我正在使用Select2 jQuery插件增强.我传递了minimumInputLength属性,让用户在填充匹配项之前键入几个字母.但是,如果需要,我不确定用户如何清除选择.

我试图传递allowClear属性,虽然它确实显示'X',但按钮不起作用,选择仍然存在.

编辑:

jsfiddle link: https://jsfiddle.net/8f1u48et/
Run Code Online (Sandbox Code Playgroud)

jquery clear select2

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