我正在将应用程序的 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中为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) 我有一个带有以下文本的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重写模块一起正常工作,但不确定是什么.
我试图让Yii2中的jui DatePicker的文本框看起来更像其他文本框,通过在渲染时将"form-control"添加到输入控件的类名.
我尝试使用像这样的clientOptions ...
'clientOptions' => [ 'class' => 'form-control' ]
'clientOptions' => [ 'className' => 'form-control' ]
Run Code Online (Sandbox Code Playgroud)
...以及作为小部件选项,但我无法弄清楚这一点.
与Bootstrap Datetimepicker相比,jui看起来真的很难看.
我有什么想法可以添加一个类或使其看起来像其他文本框?
我有一个简单的日期选择器,没有花哨的格式,但我在我的模型中使用它.
我在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) 我们在 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
我能够找到子查询构建的简单示例,但是当我需要包含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) 我开发了一个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打开受密码保护的页面时,它会显示用户登录表单.
有人可以告诉我我做错了什么,或者更好的方式去做我需要的东西.
基本上,我保存用户每次登录时都需要保持登录并打开受保护的页面.
我在 Power BI Desktop 中创建了一个报告,连接到 AWS RDS 数据库,并将其发布到 Power BI Web App,目的是从 Web 应用程序刷新数据集。
我尝试使用 MySQL 和 SQL Server(在 RDS 上)这样做。但是,Power BI Web 不允许我刷新数据集,而是希望我安装本地网关。
我不确定为什么这是一个要求,因为我的数据库位于云上而不是本地,并且位于公共 VPC 上。
是否可以在 Power BI Web 应用程序中刷新 AWS RDS 数据集?如何?
在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)
我不知道我们是否可以做类似的东西Java了HashMaps.
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)
基本上,我需要这个作为一次只读的东西作为我的代码的其他部分的配置.我搜索并尝试了一些解决方案,但无法让它们工作.或者我有更好的方法吗?
我的 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。
是否可以显示带有文件/内容读取百分比的进度条?
我有一个选择输入字段,我正在使用Select2 jQuery插件增强.我传递了minimumInputLength属性,让用户在填充匹配项之前键入几个字母.但是,如果需要,我不确定用户如何清除选择.
我试图传递allowClear属性,虽然它确实显示'X',但按钮不起作用,选择仍然存在.
编辑:
jsfiddle link: https://jsfiddle.net/8f1u48et/
Run Code Online (Sandbox Code Playgroud)