我尝试使用PercentFrameLayout但我收到此错误消息:
Binary XML file line #: You must supply a layout_width attribute.
Run Code Online (Sandbox Code Playgroud)
这是我使用的xml:
<android.support.percent.PercentFrameLayout
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">
<ImageView
app:layout_heightPercent="50%"
app:layout_marginLeftPercent="25%"
app:layout_marginTopPercent="25%"
app:layout_widthPercent="50%"/>
</android.support.percent.PercentFrameLayout>
Run Code Online (Sandbox Code Playgroud)
这是一个错误还是我的错?
android android-layout android-percent-library android-percent-layout
我尝试更改Camera2预览的纵横比,但失败了 :-(
对于裁剪,我必须使用SCALER_CROP_REGION但我没有让它工作。
我使用Google的android-Camera2Video示例进行测试。
在openCamera方法中,我添加了以下行:
mSensorSize = characteristics.get(CameraCharacteristics.SENSOR_INFO_ACTIVE_ARRAY_SIZE);
Run Code Online (Sandbox Code Playgroud)
在startPreview 中,我添加了以下内容:
final int centerX = mSensorSize.width() / 2;
final int centerY = mSensorSize.height() / 2;
final int cropSize = Math.min(mSensorSize.width(), mSensorSize.height());
final Rect crop = new Rect(centerY - cropSize / 2,
centerX - cropSize / 2,
cropSize,
cropSize);
mPreviewBuilder.set(CaptureRequest.SCALER_CROP_REGION, crop);
Run Code Online (Sandbox Code Playgroud)
我应该以 1:1 的比例预览,但它是 3:4 :-(
我做错了什么?
我有这个布局
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
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:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context="me.myapplication.ScrollingActivity">
<android.support.design.widget.AppBarLayout
android:id="@+id/app_bar"
android:layout_width="match_parent"
android:layout_height="@dimen/app_bar_height"
android:fitsSystemWindows="true"
android:theme="@style/AppTheme.AppBarOverlay">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/toolbar_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
app:contentScrim="?attr/colorPrimary"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:layout_collapseMode="pin"
app:popupTheme="@style/AppTheme.PopupOverlay"/>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<include layout="@layout/content_scrolling"/>
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="@dimen/fab_margin"
app:layout_anchor="@id/app_bar"
app:layout_anchorGravity="bottom|end"
app:srcCompat="@android:drawable/ic_dialog_email"/>
</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)
当我上下滚动时,FAB 淡入淡出 ->视频
是否可以禁用此淡入淡出动画?
android floating-action-button android-coordinatorlayout android-collapsingtoolbarlayout
我尝试将Dagger2实现到我的Kotlin项目中,但是我对@Inject注释有问题.
在Java中它看起来像这样,这工作正常:
public class FooActivity extends Activity {
@Inject
@Named("accessTokenObservable")
public Flowable<Optional<AccessToken>> accessTokenObservable;
@Override
protected void onCreate(@Nullable final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
App.getGraph().inject(this);
}
}
Run Code Online (Sandbox Code Playgroud)
但我怎么@Inject在Kotlin 写这条线?
当我使用这个时:
@Inject
@Named("accessTokenObservable")
var accessTokenObservable: Flowable<Optional<AccessToken>>? = null
Run Code Online (Sandbox Code Playgroud)
我收到此错误消息:
Error:Dagger does not support injection into private fields
Run Code Online (Sandbox Code Playgroud)
如果我使用lateinit:
@Inject
@Named("accessTokenObservable")
lateinit var accessTokenObservable: Flowable<Optional<AccessToken>>
Run Code Online (Sandbox Code Playgroud)
我收到此错误消息:
Error:Flowable<Optional<AccessToken>> cannot be provided without
an @Provides- or @Produces-annotated method.
Run Code Online (Sandbox Code Playgroud)
在Kotlin注入一些东西的正确语法是什么?
我尝试使用迄今为止有效的新Dagger Android注塑产品.
现在我想扩展到我的需求.
在我的MainActivityModule我添加了一个TestModule:
@Module
abstract class MainActivityModule {
@ActivityScope
@ContributesAndroidInjector(modules = arrayOf(TestModule::class))
internal abstract fun contributeMainActivityInjector(): MainActivity
}
Run Code Online (Sandbox Code Playgroud)
这TestModule很简单:
@Module
internal abstract class TestModule {
@Provides
internal fun provideTest(): String {
return "foo bar"
}
}
Run Code Online (Sandbox Code Playgroud)
但我得到这个错误: TestModule must be set
我查看了生成的源代码,但无法找到提示我必须做什么.我也在谷歌搜索过这个,但发现只有简单的例子:-(
我忘记了什么?你可以在GitHub找到完整的应用程序.
编辑
正如杰夫鲍曼所说,provideTest()需要保持不变.当我创建这样的Java类时:
@Module
public class TestModule {
@Provides
static String provide() {
return "foo bar";
}
}
Run Code Online (Sandbox Code Playgroud)
有用.
所以最后一个问题:如何在Kotlin制作这个?这不起作用:
@Module
internal abstract class TestModule …Run Code Online (Sandbox Code Playgroud) 我创建了友好聊天应用程序,并希望添加一个不同主题的新屏幕,但它不起作用:-(
整个应用程序有一个Brightness.dark主题:
void main() => runApp(new MyApp());
class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
print("build MaterialApp");
return new MaterialApp(
title: 'Friendly Chat',
theme: kTheme,
home: new ChatScreen(),
routes: <String, WidgetBuilder>{
SettingsScreen.PATH: (BuildContext context) => new SettingsScreen()
},
);
}
}
final ThemeData kTheme = new ThemeData(
primarySwatch: Colors.indigo,
primaryColor: Colors.indigoAccent[100],
primaryColorBrightness: Brightness.dark,
);
Run Code Online (Sandbox Code Playgroud)
当用户单击按钮时,我按下设置屏幕:
Map results = await Navigator.of(context).pushNamed(SettingsScreen.PATH);
Run Code Online (Sandbox Code Playgroud)
在设置屏幕中我改变了AppBar's backgroundColor, …
// Place an ArticleFragment as our content pane final ArticleFragment f = new ArticleFragment(); getSupportFragmentManager().beginTransaction().add(android.R.id.content, f).commit();
这行代码来自NewsReader示例应用程序
如果活动扩展ActionBarActivity,为什么它们不起作用?如果活动扩展FragmentActivity,一切正常.
更新:
不工作意味着:ArticleFragment不会变得可见,它发生在Android <4.x的设备上,可能<3.x但是我没有安装Android 3.x的设备来测试它.
为什么?
拉尔夫
在应用程序启动时,我需要知道用户是否已登录才能显示登录页面.
我的第一次尝试是打电话AccessToken.getCurrentAccessToken(),但这不起作用,请参阅/sf/answers/2089797461/
我的第二次尝试是使用AccessTokenTracker,但这也不起作用.要使用AccessTokenTracker,我必须首先初始化Facebook SDK.但在此初始化期间,访问令牌被发送到跟踪器.此时未创建跟踪器,无法接收令牌.
我的第三次尝试是创建我自己的AccessTokenTracker,看起来像原始的.我在初始化SDK之前创建并注册了它.现在我的跟踪器在SDK初始化过程中得到了令牌.
凭借这些知识,我在Facebook上打开了一个错误报告:
Facebook的答案:
这看起来不像bug.AccessTokenTracker :: onCurrentAccessTokenChanged应该在类收到令牌时通知您.
我知道这不起作用.现在我知道没有错误.
但是如何解决我的问题呢?
这不起作用:
FacebookSdk.sdkInitialize(getApplicationContext());
mAccessTokenTracker = new AccessTokenTracker() {
@Override
protected void onCurrentAccessTokenChanged(AccessToken oldAccessToken, AccessToken currentAccessToken) {
Timber.i("AccessTokenTracker oldAccessToken: " + oldAccessToken + " - currentAccessToken: " + currentAccessToken);
}
};
Run Code Online (Sandbox Code Playgroud) 我尝试使用小型 Rust 应用程序创建 Docker 映像。我想在 Raspberry Pi 4b 上运行的 Kubernetes 集群上运行它。所以图像一定是linux/arm64/v8。
我在 macOS 上使用以下命令创建图像:
$ docker build --platform linux/arm64/v8 -t dasralph/ping:arm64_1.0.4 .
Run Code Online (Sandbox Code Playgroud)
但是当我在 Raspberry Pi 上运行它时,找不到执行程序:
$ sudo docker run dasralph/ping:arm64_1.0.4
Unable to find image 'dasralph/ping:arm64_1.0.4' locally
arm64_1.0.4: Pulling from dasralph/ping
4f4fb700ef54: Pull complete
38f252ce47e1: Pull complete
Digest: sha256:4fbda499e0552bf08bf230db56906d185bd340655c0cc741ad10ee0ea642c626
Status: Downloaded newer image for dasralph/ping:arm64_1.0.4
exec /ping: no such file or directory
Run Code Online (Sandbox Code Playgroud)
这是我的 Docker 文件:
# STAGE 1 is to build the binary
# Use rust-based image for …Run Code Online (Sandbox Code Playgroud) 我想将 JSON 数组中的所有元素插入到表中:
INSERT INTO local_config(parameter, value)
SELECT json_extract(j.value, '$.parameter'), json_extract(j.value, '$.value')
FROM json_each(json('[{"parameter": 1, "value": "value1"}, {"parameter": 2, "value": "value2"}]')) AS j
WHERE value LIKE '%'
ON CONFLICT (parameter) DO UPDATE SET value = excluded.value;
Run Code Online (Sandbox Code Playgroud)
到目前为止这有效,但我真的需要这个WHERE value LIKE '%'条款吗?
当我删除它时:
INSERT INTO local_config(parameter, value)
SELECT json_extract(j.value, '$.parameter'), json_extract(j.value, '$.value')
FROM json_each(json('[{"parameter": 1, "value": "value1"}, {"parameter": 2, "value": "value2"}]')) AS j
ON CONFLICT (parameter) DO UPDATE SET value = excluded.value;
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
[SQLITE_ERROR] SQL error or missing database (near …Run Code Online (Sandbox Code Playgroud) android ×7
dagger-2 ×2
kotlin ×2
android-collapsingtoolbarlayout ×1
arm64 ×1
dart ×1
docker ×1
dockerfile ×1
facebook ×1
flutter ×1
java ×1
linux ×1
on-clause ×1
rust ×1
sql-insert ×1
sql-update ×1
sqlite ×1
upsert ×1