小编Ral*_*ann的帖子

PercentFrameLayout:您必须提供layout_width属性

我尝试使用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

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

如何更改camera2预览的纵横比?

我尝试更改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 :-(

我做错了什么?

android android-camera2

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

禁用 FAB 淡入淡出动画

我有这个布局

<?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

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

如何在Kotlin中注入var?

我尝试将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注入一些东西的正确语法是什么?

java android kotlin dagger-2

4
推荐指数
2
解决办法
4436
查看次数

必须设置模块

我尝试使用迄今为止有效的新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)

android kotlin dagger-2

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

如何为屏幕设置不同的主题?

我创建了友好聊天应用程序,并希望添加一个不同主题的新屏幕,但它不起作用:-(

整个应用程序有一个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, …

dart flutter

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

getSupportFragmentManager().beginTransaction().add(android.R.id.content,f)not working

// 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的设备来测试它.

为什么?

拉尔夫

android android-fragmentactivity android-actionbar-compat

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

如何在应用程序启动时获取当前的Facebook访问令牌?

在应用程序启动时,我需要知道用户是否已登录才能显示登录页面.

我的第一次尝试是打电话AccessToken.getCurrentAccessToken(),但这不起作用,请参阅/sf/answers/2089797461/

我的第二次尝试是使用AccessTokenTracker,但这也不起作用.要使用AccessTokenTracker,我必须首先初始化Facebook SDK.但在此初始化期间,访问令牌被发送到跟踪器.此时未创建跟踪器,无法接收令牌.

我的第三次尝试是创建我自己的AccessTokenTracker,看起来像原始的.我在初始化SDK之前创建并注册了它.现在我的跟踪器在SDK初始化过程中得到了令牌.

凭借这些知识,我在Facebook上打开了一个错误报告:

  • 为什么AccessTokenTracker依赖于初始化的SDK.我认为这是一个错误.
  • 在应用启动时查看用户是否登录的正确方法是什么.

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)

android facebook facebook-android-sdk facebook-access-token

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

Docker 镜像中的 Rust:exec 没有这样的文件或目录

我尝试使用小型 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)

linux rust docker arm64 dockerfile

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

使用子查询和 ON CONFLICT 进行 INSERT INTO

我想将 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)

sqlite upsert on-clause sql-update sql-insert

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