TextView没什么特别的,只是加载自定义字体:
public class TestTextView extends AppCompatTextView {
public TestTextView(Context context) {
super(context);
init(context);
}
public TestTextView(Context context, AttributeSet attrs) {
super(context, attrs);
init(context);
}
public TestTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
init(context);
}
void init(Context context) {
Typeface t = Typeface.createFromAsset(context.getAssets(), "fonts/daisy.ttf");
setTypeface(t);
}
}
Run Code Online (Sandbox Code Playgroud)
布局也很基础,但以防万一:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/material_red200"
android:orientation="vertical">
<*custompackage* .TestTextView
android:gravity="left"
android:padding="0dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="just some text for testing"
android:textColor="@color/material_black"
android:textSize="100dp" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
如您所见,左侧部分,如"j"和"f"被切断.
设置填充或边距不起作用.
从其他程序使用时,此字体适合其框架.
提前致谢.
编辑:在我的案例中,@ play_err_提到的不是解决方案.
我正在创建一个TypeToken
类似于Gson的类似系统,我偶然发现了一些我不理解的东西.
这段代码的意图是只有一个TypeReference
带有一个泛型参数的类可以容纳多个.该类将使用inline
函数创建,这样用户无需知道Holder
该类.
请考虑以下代码:
package testing
import java.lang.reflect.ParameterizedType
import java.lang.reflect.Type
abstract class TypeReference<T : Holder> {
val type: Type = (javaClass.genericSuperclass as ParameterizedType).actualTypeArguments[0]
override fun toString(): String {
return type.typeName
}
}
inline fun <reified T : Holder> create() = object : TypeReference<T>() {}
inline fun <reified WHAT> createSingle() = object : TypeReference<Single<WHAT>>() {}
class Foo
interface Holder
interface Single<T> : Holder
fun main(args: Array<String>) {
println(create<Single<HashMap<Int, String>>>())
println(create<Single<Foo>>())
println(createSingle<HashMap<Int, String>>())
println(createSingle<Foo>())
} …
Run Code Online (Sandbox Code Playgroud) 我以为AS是开发时受主要支持的环境,所以这确实很不寻常。
Alt + Enter
在 Android Studio
Flutter插件:v35.2.1
Dart插件:v183.6270
阅读此内容后,在VS Code中打开了相同的项目。
Ctrl + .
在 VS Code
Flutter插件:v.2.26.1
Dart插件:v2.26.1
扑:
flutter --version
Flutter 1.2.1 • channel stable • https://github.com/flutter/flutter.git
Framework • revision 8661d8aecd (3 months ago) • 2019-02-14 19:19:53 -0800
Engine • revision 3757390fa4
Tools • Dart 2.1.2 (build 2.1.2-dev.0.0 0a7dcf17eb)
Run Code Online (Sandbox Code Playgroud)
这是为什么?
注意:我发现的所有其他问题都与 Angular 相关和/或具有与此完全不同的设置。
我有以下设置:
inner/action.ts
:
export type MyAction = string;
Run Code Online (Sandbox Code Playgroud)
inner/functions.ts
import { MyAction } from "./action";
const identity = (action: MyAction): string => action;
export {
identity
};
Run Code Online (Sandbox Code Playgroud)
inner/index.ts
import * as MyAction from "./functions";
export { MyAction };
export * from "./action";
Run Code Online (Sandbox Code Playgroud)
usage.ts
import { MyAction } from "./inner";
const action: MyAction = "";
// ^___ error is here
Run Code Online (Sandbox Code Playgroud)
错误:无法使用命名空间“MyAction”作为类型
尽管 IntelliJ 提供了在代码中导航到该位置的功能。
为什么不允许在这两种情况下使用相同的名称,我该怎么做才能使它们都具有相同的名称?
长话短说,我必须在运行时为特定测试设置一个环境。
这里的答案很好用,我正在使用这个。问题是我收到此警告:
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by **YOUR PACKAGE** (file: **YOUR FILE** ) to field java.util.Collections$UnmodifiableMap.m
WARNING: Please consider reporting this to the maintainers of **YOUR PACKAGE**
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Run Code Online (Sandbox Code Playgroud)
我已经开始寻找解决方案,这里的另一个 SO 答案“解决”了单元测试的问题,使用相同的方法设置环境变量。
我正在谈论来自他们的 Github 源代码的这行代码,它触发了这个错误。( field.setAccessible(true);
)
所以看起来除了设置给定的标志之外没有其他方法可以解决这个问题,就像警告所建议的那样。
然后我想知道这个警告是否严重,以及我的程序是否会在几个月内运行(我使用的是 OpenJDK 11)。事实证明,这个illegal-access …
这就是我在Kotlin中创建类授权的方法:
class CustomList<T>(private val data: ArrayList<T> = ArrayList<T>()) : List<T> by data
Run Code Online (Sandbox Code Playgroud)
但是,我不想将数据放在构造函数中,因为我希望列表在CustomList
创建时为空:
class CustomList<T> : List<T> by data {
private val data = ArrayList<T>()
}
Run Code Online (Sandbox Code Playgroud)
这似乎不起作用.
如何创建data
内部字段并将List委托给它的方法而不必编写所有委托方法?
使用Formik
with Ant Design
,这是一个简单的设置。
您可以在此处查看粘贴的完整代码:
import React from "react";
import ReactDOM from "react-dom";
import "./styles.css";
import { Formik } from "formik";
import { Form, Input, InputNumber } from "antd";
function App() {
const name = "name";
const count = "count";
return (
<div className="App">
<h1>Formik Testing</h1>
<Formik
initialValues={{ count: 32, name: "sd" }}
validate={async values => {
console.log("Validate", values);
return {
count: `Value ${values.count} is not valid.`
};
}}
onSubmit={(values, actions) => {
console.log(values);
}}
render={props => { …
Run Code Online (Sandbox Code Playgroud) kotlin ×3
android ×1
antd ×1
dart ×1
flutter ×1
fonts ×1
formik ×1
generics ×1
java ×1
javascript ×1
kotlin-reified-type-parameters ×1
module ×1
reactjs ×1
textview ×1
types ×1
typescript ×1
unit-testing ×1