小编ant*_*kas的帖子

MaterialComponents主题警告对话框按钮

最近我从支持库切换到com.google.android.material:material:1.0.0

但是现在我有一个问题,在这个页面上有一个注释https://github.com/material-components/material-components-android/blob/master/docs/getting-started.md

注意:使用"材质成分"主题可启用自定义视图填充程序,该填充程序将使用"材质"对应项替换默认组件.目前,这仅使用MaterialButton替换Button XML组件.

我正在使用的主题

Theme.MaterialComponents.Light.NoActionBar
Run Code Online (Sandbox Code Playgroud)

它完全按照它在说明中所说的,它将AlertDialog按钮替换为MaterialButtons,但问题是默认情况下MaterialButtons是彩色背景,现在按钮看起来像这样: 在此输入图像描述

我怎样才能让它们再次无边界和无背景?

PS我正在使用警报构建器来创建警报对话框:

android.app.AlertDialog.Builder
Run Code Online (Sandbox Code Playgroud)

android android-alertdialog android-styles material-design material-components-android

49
推荐指数
7
解决办法
8552
查看次数

socket.io发出的回调是否合适?

最近我一直在搞乱socket.io并发现这个有趣的事情,我可以像这样发出函数回调.

我在客户端开始像这样发射:

client.emit('eventToEmit', dataToEmit, function(error, message){
    console.log(error);
    console.log(message);
});
Run Code Online (Sandbox Code Playgroud)

然后我可以像这样从服务器端发出回调:

client.on('eventToEmit', function(data, callback){
    console.log(data);
    callback('error', 'message');
});
Run Code Online (Sandbox Code Playgroud)

一切正常,没有错误,但我感兴趣的是,如果做这样的事情是合适的,因为到目前为止我还没有在文档或任何例子中看到类似的东西.

callback node.js socket.io emit

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

道格拉斯克罗克福德的构造模式

最近我看了Douglas Crockford的一次演讲(他的演讲让我着迷,但总是让我感到困惑).他给出了一个构造函数的例子,但我不太明白我将如何在实践中使用它:

function constructor(spec) {
  var that = other_constructor(spec),
    member,
    method = function () {
      //spec , member, method
    };

  that.method = method;
  return that;      
}
Run Code Online (Sandbox Code Playgroud)

也许有人可以根据这种模式给我一个简单的工作示例?

javascript oop constructor

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

Symfony2提供打开的pdf文件

我需要通过控制器提供pdf文件,但我无法在浏览器窗口中打开它们.当我用pdf文件发送响应时,它会呈现乱码,或者如果我按照http://symfony.com/doc/current/components/http_foundation/introduction.html#serving-files中的示例,它会下载文件,但我需要在查看模式下打开它,我该怎么办?

这是我到目前为止所得到的:

return new Response(readfile('/file/path/file.pdf'), 200,
    array('Content-Type' => 'application/pdf')
);
Run Code Online (Sandbox Code Playgroud)

我错过了什么,或者我的php或apache配置有问题吗?

php pdf symfony

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

Symfony2在Data Transformer之前形成字段约束验证

我已经创建了需要数据转换器的表单,但是让我自己陷入单一问题:我通过爆炸字符串转换数据(字符串应该被分解为3个部分),一切正常,如果我提供正确的格式字符串,但否则会在数据内部引发错误变换器,因为如果提供了错误的字符串格式,则不会发生转换(这是预期的行为).

所以问题是有没有办法在数据转换之前验证表单字段的正确字符串?我知道默认情况下,数据转换发生在验证之前,但也许有办法以其他方式做到这一点?

我找到了一个可能在这个线程上工作的解决方案:组合约束和数据转换器,但它看起来像粗略的解决方案,除了我需要翻译验证消息,我真的想使用symfony表单的默认翻译方法(不使用翻译服务)

我想,也有来自symfony IRC(Iltar)的人建议通过使用事件来做,但我不知道如何去做 - 如何动态地将数据转换器附加到表单字段?或者可能还有其他方式?

forms validation symfony

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

Karma,Typescript定义文件未加载

我正在使用karma,webpack和typescript设置开发环境,但我遇到的问题是karma没有在测试中应用自定义定义文件.

这是我的项目文件结构:

// file structure
project/
    config/
        karma.conf.js
    tests/
        test-files.ts 
        ...        
    src/
        tsdefinitions.d.ts
        other-ts-files.ts
        ...
    tsconfig.json
Run Code Online (Sandbox Code Playgroud)

这里是与webpack和typescript相关的karma配置部分

webpack: {
  devtool: 'eval-source-map',
  resolve: {
    extensions: ['.webpack.js', '.web.js', '.ts', '.tsx', '.js']
  },
  module: {
    loaders: [{
      test: /\.tsx?$/,
      loader: 'awesome-typescript-loader'
    }]
  }
},
webpackMiddleware: {stats: 'errors-only'},
mime: {'text/x-typescript': ['ts','tsx']},
basePath: '../',
files: [{
  pattern: './test/**/*.ts',
  watched: false
}],
preprocessors: {
  './test/**/*.ts': ['webpack', 'sourcemap']
}
Run Code Online (Sandbox Code Playgroud)

最后是tsconfig.json

{
  "compilerOptions": {
    "removeComments": true,
    "allowSyntheticDefaultImports": true,
    "baseUrl": "./",
    "sourceMap": true,
    "noImplicitAny": true,
    "allowJs": true,
    "module": "commonjs", …
Run Code Online (Sandbox Code Playgroud)

typescript karma-runner tsconfig webpack

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

Symfony2自定义事件调度程序和侦听器

我正在尝试创建自定义事件,但无法使其工作.

我做了什么:

我创建了一个识别类的事件

namespace Path\ToBundle;  
final class CookieEvents
{
    const COOKIE_EVENT = 'cookie.event';
}
Run Code Online (Sandbox Code Playgroud)

2.处理过的事件

namespace Path\ToBundle\EventListener;
use Path\ToBundle\Event\FilterResponseEvent;
class ResponseListener
{
    public function onCookieInit(FilterResponseEvent $event)
    {
        //some complex logic goes here
        echo('test');
    }
} 
Run Code Online (Sandbox Code Playgroud)

3.created事件监听器

namespace Path\ToBundle\Event;
use Symfony\Component\EventDispatcher\Event;
use Symfony\Component\HttpFoundation\Response;
class FilterResponseEvent extends Event
{
    protected $response;
    public function __construct(Response $response)
    {
        $this->response = $response;
    }
    public function getResponse()
    {
        return $this->response;
    }
}
Run Code Online (Sandbox Code Playgroud)

4.Tried在service.yml中注册事件监听器

kernel.listener.cookie.event:
    class: Path\ToBundle\Event\ResponseListener
    tags:
        - { name: kernel.event_listener, event: cookie.event, method: onCookieInit } …
Run Code Online (Sandbox Code Playgroud)

events symfony

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

Android 导航组件 popUpTo 闪烁

我想使用导航在 2 个状态之间进行简单的转换,但我有 1 个问题:

当用户启动应用程序时,会出现一个带有 1 个按钮的欢迎屏幕,该按钮应进入登录屏幕。

用户单击该按钮后,他将被带到登录屏幕,并且需要删除 backstack,因此当用户单击后退按钮时,他将完全退出应用程序而不是前一个屏幕。

我已经实现了这个工作流程并且它有效,但问题是点击按钮弹出堆栈后对用户可见。

<?xml version="1.0" encoding="utf-8"?>
<navigation
    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/welcome_nav"
    app:startDestination="@id/welcome_fragment">

    <fragment
        android:id="@+id/welcome_fragment"
        android:name="com.domain.example.WelcomeFragment"
        android:label="WelcomeFragment"
        tools:layout="@layout/welcome_screen">
        <action
            android:id="@+id/action_to_login_nav"
            app:destination="@id/access_nav"
            app:enterAnim="@anim/nav_default_enter_anim"
            app:exitAnim="@anim/nav_default_enter_anim"
            app:popUpTo="@id/welcome_fragment"
            app:popUpToInclusive="true" />
    </fragment>

    <include app:graph="@navigation/login_nav" />

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

附注。我说backstack的弹出是可见的意思是:在短时间内登录目的地可见,然后上一个目的地再次可见,然后登录目的地再次可见,这发生得很快,但随着过渡动画,它可见状态闪烁。

android android-architecture-navigation

7
推荐指数
0
解决办法
1429
查看次数

symfony2选民或acl

我正在建立系统并试图在选民和ACL之间做出决定.我需要实现的是应该有不同角色的用户访问对象属性,例如:经过身份验证的常规用户可以看到Post及其内容,但不能看到它的"Position"属性,而具有编辑角色的用户也可以看到Post和它的内容,并有权看到"位置"属性并进行编辑.我可以通过单独使用选民来实现此功能,还是需要使用ACL?

编辑:

对于令人困惑的问题我很抱歉,我是symfony的新手并且还不太了解这些概念.我想要实现的是对象字段级别的权限. 在此输入图像描述

普通用户可以访问"TITLE"和"CONTENT"属性,并修改"CONTENT"属性",主持人可以查看和编辑以前的两个属性,管理员应该可以访问所有对象属性,并对它们执行任何操作.

acl symfony

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

TextView锚链接空间

我想用链接制作TextView.我用html和java的组合制作了它:

// used to enable link navigation on TextView
setMovementMethod(LinkMovementMethod.getInstance())

// TextView with link
<TextView
    android:id="@+id/textView5"
    android:layout_width="wrap_content"
    android:layout_height="19dp"
    android:layout_marginTop="8dp"
    android:gravity="center"
    android:linksClickable="true"
    android:text="@string/link"/>

// @string/link
<string name="link">Test <a href="#">link</a></string>
Run Code Online (Sandbox Code Playgroud)

但是仍然存在一个问题,实际链接文本之前的空格加下划线如下:

在此输入图像描述

为什么这样,它怎么能修复?

android textview

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