在Lollipop之前的设备上,升级到Support Library 23.2.0后,操作栏上的溢出菜单图标和后退按钮变为黑色.它们在升级之前是白色的(这是正确的颜色).
升级后,前Lollipop设备会显示错误的颜色,如溢出菜单图标所示:
sytle.xml中的主题(pre-v21/Lollipop):
Run Code Online (Sandbox Code Playgroud)<resources xmlns:android="http://schemas.android.com/apk/res/android" > <!--Used on the application level by the manifest.--> <style name="app_theme" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="colorPrimary">@color/app_primary_colour</item> <item name="colorPrimaryDark">@color/app_primary_dark_colour</item> <item name="colorAccent">@color/app_accent_colour</item> <item name="android:windowBackground">@color/app_background</item> <item name="searchViewStyle">@style/custom_search_view_style</item> </style> <!--Used by activities.--> <style name="app_theme.NoActionBar"> <item name="windowActionBar">false</item> <item name="windowNoTitle">true</item> </style> <!--TODO: What are these?--> <style name="app_theme.app_bar_overlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" /> <style name="app_theme.popup_overlay" parent="ThemeOverlay.AppCompat.Light" /> ... ... </resources>
更新:另请参阅此Google错误报告:https: //code.google.com/p/android/issues/detail?id = 201918
我有一个简单的活动,文本视图后跟两个编辑文本.当我开始输入时,软键盘会向上推动布局并隐藏操作栏,我将无法选择/复制/粘贴文本.
我的活动如下:
当我开始输入时,操作栏会被隐藏,就像这样 - 更重要的是,请注意,即使文本突出显示,也会丢失正常的复制粘贴栏:
我该怎么做才能确保操作栏不隐藏?
在我的活动清单中,我使用的是adjustPan.我不想使用adjustResize.
android:windowSoftInputMode="stateAlwaysHidden|adjustPan"
我的活动在这里:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout 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/navigation_drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:openDrawer="start">
<android.support.design.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context=".MainActivity">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/app_theme.app_bar_overlay">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/app_theme.popup_overlay" />
</android.support.design.widget.AppBarLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="@dimen/activity_margin"
android:fillViewport="true"
android:orientation="vertical"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="0.5"
android:background="@android:color/darker_gray"
android:text="My holiday story here." />
<View
android:layout_width="match_parent"
android:layout_height="@dimen/activity_margin" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/gap_normal"
android:gravity="top"
android:text="My Holiday in Europe" />
<EditText
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="0.5"
android:gravity="top"
android:text="My holiday …Run Code Online (Sandbox Code Playgroud) android android-softkeyboard android-activity android-actionbar android-appbarlayout
我正在尝试使用稀疏检查来从BitBucket存储库中签出一个目录,但是当我尝试拉取时,得到"稀疏结账不会在工作目录上留下任何条目"错误.
BitBucket存储库具有以下目录结构:
我在Windows 7笔记本电脑上的E:\ Temp\SomeProjectRepo上有一个本地目录.我想从BitBucket存储库中检出/拉出"MyProject"到我的本地目录,所以我可以在E:\ Temp\SomeProjectRepo\MyProject上工作.
所以我创建了"E:\ Temp\SomeProjectRepo"并在DOS中执行以下操作:
cd E:\Temp\SomeProjectRepogit remote add origin https://bitbucket.org/blah/blahgit initgit config core.sparsecheckout trueecho MyProject > .git/info/sparse-checkoutgit pull origin master在步骤6,我得到"稀疏结账在工作目录上没有任何条目".我曾试图在第5步(如不同的语法MyProject\,SomeProjectRepo\*,SomeProjectRepo\MyProject\,等,等),但没有奏效.
如何使用稀疏结账(或任何其他工具)才能使用" MyProject"?
有一种简单的方法可以将整数值转换为枚举吗?我想从共享首选项中检索一个整数值并将其转换为枚举类型.
我的枚举是:
enum ThemeColor { red, gree, blue, orange, pink, white, black };
Run Code Online (Sandbox Code Playgroud)
我想轻松地将整数转换为枚举:
final prefs = await SharedPreferences.getInstance();
ThemeColor c = ThemeColor.convert(prefs.getInt('theme_color')); // something like that
Run Code Online (Sandbox Code Playgroud) 我在应用程序的主页/根页面中有一个流构建器。每当我在别处进行页面导航时,就会触发此流构建器,这与流本身无关。
根据here和here,我的理解是,当在导航器中弹出/推送页面时,它会触发应用程序的重建,因此流构建器会重新连接并触发。然而,这似乎效率低下,那么有没有办法防止流构建器在弹出/推送页面时触发?
此外,根据日志,当我推送页面时,页面首先被构建并显示,然后流构建器被触发。然而,流构建器的小部件/页面根本不显示,即使日志/调试器清楚地显示流构建器的小部件已返回。它去了哪里?它在 Flutter 框架中是如何工作的?
下面是完整的代码和日志。该代码使用 Firebase 身份验证作为流构建器。
代码:
import 'package:flutter/material.dart';
import 'package:firebase_auth/firebase_auth.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: AppHomePage(),
);
}
}
class AppHomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
final FirebaseAuth auth = FirebaseAuth.instance;
return StreamBuilder<FirebaseUser>(
stream: auth.onAuthStateChanged,
builder: (_, AsyncSnapshot<FirebaseUser> snapshot) {
if (snapshot.connectionState == ConnectionState.active) {
final FirebaseUser user = snapshot.data; …Run Code Online (Sandbox Code Playgroud) dart firebase-authentication flutter flutter-layout stream-builder
我有一个带有一些 TextFormField 的表单,我想扩展最后一个 TextFormField 以占据屏幕的其余部分。最后一个 TextFormField 可以有多行文本。
我一直无法实现这一点,并尝试SizedBox.expand()过Expanded小部件,但没有运气。
以下是当前代码:
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(title: 'Flutter Demo Home Page'),
);
}
}
class MyHomePage extends StatefulWidget {
MyHomePage({Key key, this.title}) : super(key: key);
final String title;
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends …Run Code Online (Sandbox Code Playgroud) 我想通过将它与另一个表(tableB)进行比较,在一个表(tableA)中找到新的,已修改的和已删除的记录.两个表都具有相同的模式,并具有唯一的ID字段.
在我的情况下,tableA最初与tableB相同,但它已由一些外部组织编辑,一旦完成编辑,他们通过ZIP文件发回表,我们重新填充(截断并插入)该数据到TableA的.所以我想找出tableA中哪些记录发生了变化.我正在使用SQL Server 2012.
我可以使用"except"关键字获取新的和修改过的记录:
select * from tableA
except
select * form tableB
Run Code Online (Sandbox Code Playgroud)
(我们称之为上述结果)
我也可以删除和修改记录:
select * from tableB
except
select * form tableA
Run Code Online (Sandbox Code Playgroud)
(让我们称之为上述结果B)
问题是,ResultsA和ResultsB都具有相同的修改/编辑记录.因此修改/编辑的记录加倍.我可以在ResultsA和ResultsB上使用内部联接或交叉来获取修改后的记录(将此结果称为结果C).但后来我将需要再次ResultsA和ResultsC之间使用加入/除非得到公正的新的再ResultsB和ResultsC之间的记录,并加入/除非得到刚刚删除的记录......我想这个和这个,但他们没有工作为了我.
显然这不好.有没有更优雅,更简单的方法来找出tableB中已删除,修改或添加的记录?
如何使用正则表达式解析有限的SQL where子句?
where子句的格式受到限制.它不包含子查询.它仅限于"AND","OR"和"()".
因此,如果给出where子句,我想从中提取部分.
where子句的3个例子:
例如1,我想要"ProjectNumber =?"
例如2,我想要"ProjectNumber =?","severity = 5"
例如3,我想要"ProjectNumber =?","severity = 5","DueDate <(DATETIME('NOW'))"
"?" 表示该值已参数化.
我理解正则表达式不足以解析完整的SQL where子句.
我发现这个"(?<= ^ |\A |(AND | OR))(?:[^'] |'(?:[^'] |'{2})+')*?(?= (AND | OR)| $ |\Z)"但它不适用于3.
编程语言是C#,数据库是SQLite.
ps我是Regex的基本经验.
谢谢.
ps下面是我目前的C#代码:
string query = @"(ProjectNumber=? AND severity=5) OR DueDate < (DATETIME('NOW'))";
string pattern = @"(?<=^|\A|(AND|OR))(?:[^']|'(?:[^']|'{2})+')*?(?=(AND|OR)|$|\Z)";
MatchCollection matches = Regex.Matches(query, pattern);
foreach (Match match in matches)
Console.WriteLine(match.ToString());
// currently Console.WriteLine() gives …Run Code Online (Sandbox Code Playgroud) string.format()当参数可以变化时,有没有办法动态格式化字符串?我想写一个函数,其中输入是一个SQL字符串和一个名称 - 值对的字典; 两种输入都可以变化.
例如,SQL字符串可能是
"select * from students where school={schoolArg} and age={ageArg}"
Run Code Online (Sandbox Code Playgroud)
随着字典 {schoolArg: "some school", ageArg: 10}
另一个SQL字符串可能是
"select * from teachers where class={classArg}"
Run Code Online (Sandbox Code Playgroud)
随着字典 {classArg: "history"}
...等等.
我可以string.replace()毫无问题地使用.但是有可能使用string.format(),事先不知道参数吗?