小编hen*_*000的帖子

更新到支持库23.2.0后,前棒棒糖设备中的后箭头和溢出图标颜色错误

在Lollipop之前的设备上,升级到Support Library 23.2.0后,操作栏上的溢出菜单图标和后退按钮变为黑色.它们在升级之前是白色的(这是正确的颜色).

正确的颜色是: 在此输入图像描述

升级后,前Lollipop设备会显示错误的颜色,如溢出菜单图标所示:

在此输入图像描述

sytle.xml中的主题(pre-v21/Lollipop):

<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>
Run Code Online (Sandbox Code Playgroud)

我看过这里这里但没有解决问题.

更新:另请参阅此Google错误报告:https: //code.google.com/p/android/issues/detail?id = 201918

android android-support-library androiddesignsupport

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

软键盘隐藏动作栏

我有一个简单的活动,文本视图后跟两个编辑文本.当我开始输入时,软键盘会向上推动布局并隐藏操作栏,我将无法选择/复制/粘贴文本.

我的活动如下:

正常活动视图

当我开始输入时,操作栏会被隐藏,就像这样 - 更重要的是,请注意,即使文本突出显示,也会丢失正常的复制粘贴栏:

缺少操作栏和复制/粘贴栏

我该怎么做才能确保操作栏不隐藏?

  • 我已经尝试了一些来自SO的其他技巧(例如使用滚动视图),但没有一个工作.
  • 该应用程序是使用带有抽屉活动的Android Studio 1.4.1向导创建的.
  • 在我的活动清单中,我使用的是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

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

Git Sparse Checkout不允许任何工作指令

我正在尝试使用稀疏检查来从BitBucket存储库中签出一个目录,但是当我尝试拉取时,得到"稀疏结账不会在工作目录上留下任何条目"错误.

BitBucket存储库具有以下目录结构:

  • SomeProjectRepo
    • JohnsProject
    • MarysProject
    • 我的项目

我在Windows 7笔记本电脑上的E:\ Temp\SomeProjectRepo上有一个本地目录.我想从BitBucket存储库中检出/拉出"MyProject"到我的本地目录,所以我可以在E:\ Temp\SomeProjectRepo\MyProject上工作.

所以我创建了"E:\ Temp\SomeProjectRepo"并在DOS中执行以下操作:

  1. cd E:\Temp\SomeProjectRepo
  2. git remote add origin https://bitbucket.org/blah/blah
  3. git init
  4. git config core.sparsecheckout true
  5. echo MyProject > .git/info/sparse-checkout
  6. git pull origin master

在步骤6,我得到"稀疏结账在工作目录上没有任何条目".我曾试图在第5步(如不同的语法MyProject\,SomeProjectRepo\*,SomeProjectRepo\MyProject\,等,等),但没有奏效.

如何使用稀疏结账(或任何其他工具)才能使用" MyProject"?

git bitbucket

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

Flutter/Dart将Int转换为Enum

有一种简单的方法可以将整数值转换为枚举吗?我想从共享首选项中检索一个整数值并将其转换为枚举类型.

我的枚举是:

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)

enums dart flutter

13
推荐指数
3
解决办法
6084
查看次数

Flutter Stream Builder 在 Navigator Pop 或 Push 被调用时触发

我在应用程序的主页/根页面中有一个流构建器。每当我在别处进行页面导航时,就会触发此流构建器,这与流本身无关。

根据herehere,我的理解是,当在导航器中弹出/推送页面时,它会触发应用程序的重建,因此流构建器会重新连接并触发。然而,这似乎效率低下,那么有没有办法防止流构建器在弹出/推送页面时触发?

此外,根据日志,当我推送页面时,页面首先被构建并显示,然后流构建器被触发。然而,流构建器的小部件/页面根本不显示,即使日志/调试器清楚地显示流构建器的小部件已返回。它去了哪里?它在 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

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

Flutter 展开/占用 TextFormField 以填充屏幕的其余部分

我有一个带有一些 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)

flutter flutter-layout

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

查找两个表之间的已修改/新建/已删除记录

我想通过将它与另一个表(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 t-sql sql-server

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

正则表达式解析有限SQL的子句

如何使用正则表达式解析有限的SQL where子句?

where子句的格式受到限制.它不包含子查询.它仅限于"AND","OR"和"()".

因此,如果给出where子句,我想从中提取部分.

where子句的3个例子:

  1. ProjectNumber =?
  2. ProjectNumber =?AND severity = 5
  3. (ProjectNumber =?AND severity = 5)OR DueDate <(DATETIME('NOW'))

例如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)

c# regex sqlite

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

使用Format()在Python中动态字符串替换

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(),事先不知道参数吗?

python string dictionary

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