小编HBB*_*B20的帖子

Android Studio中XML布局的意外自动格式化

我4年来一直在使用AS.在上次更新后,我观察到了XML布局的意外自动格式化(在键入时也使用Code- > Reformat Code).

这是一个例子:

  1. 当我开始键入相对布局时,它在同一行中展开了开始标记,宽度属性,高度属性和结束标记.
  2. 缩进后属性开始.
  3. 重新格式化后,视图之间没有空格.

  • 这是新AS 的功能吗?那怎么能还原呢?
  • 我改变了一些设置吗?我应该修改什么设置才能恢复?(我试图在谷歌上找到但找不到任何东西)

在此输入图像描述

我使用的是Android Studio 3.2.1 Build#AI-181.5540.7.32.5056338,建于2018年10月8日

android android-layout android-xml android-studio android-studio-3.0

25
推荐指数
2
解决办法
5881
查看次数

Bumble Bee Android Studio 的网络检查器打印出奇怪的响应

将 Android Studio 更新为 Bumble Bee 并希望使用 Network Inspector。响应不再是纯文本。它在 Arctic Fox(Android Studio 的早期版本)的 Network Profiler 上运行良好。我尝试查看更新文档,但找不到这个方向的任何内容。是否有一些设置需要更改?

Android Studio 大黄蜂 | 2021.1.1 补丁 1

在此输入图像描述

android android-studio

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

缺省语言的MissingTranslation("..."未翻译为"en")

我想生成一个签名的apk并得到以下错误:

Error:(65) Error: "..." is not translated in "en" (English) [MissingTranslation]
Run Code Online (Sandbox Code Playgroud)

我的项目只包含默认文件夹(没有语言的插件),例如values文件夹和ONE语言,这是德语(意思是,我有一个values-de文件夹)

我的默认语言是英语,因此所有不属于特殊语言的资源都应该是英语.

质询

android工作室为什么告诉我,它缺少en语言,虽然我没有单个文件夹?也许en-folder是gradle导入的一部分?我可以以某种方式排除它们吗?实际上,我不知道en它来自哪里,因为我不在任何地方使用它......

我只有valuesvalues-de文件夹!

values我有以下:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="pause_alarms">
        <item>Silent</item>
        <item>Vibrate</item>
        <item>Sound</item>
        <item>Vibrate + Sound</item>
    </string-array>
</resources>
Run Code Online (Sandbox Code Playgroud)

values-de我有以下:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="pause_alarms">
        <item>Leise</item>
        <item>Vibrieren</item>
        <item>Ton</item>
        <item>Vibrieren + Ton</item>
    </string-array>
</resources>
Run Code Online (Sandbox Code Playgroud)

android lint android-resources android-studio

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

水平RecyclerView作为垂直RecyclerView中的项目放置时自动滚动问题

为了复制这个问题,我克隆了一个现有的项目并添加了两个片段.所以现在有Activity一个ViewPager有2个片段.每个Fragment都有一个RecyclerView(垂直),其中包含多个RecyclerView(水平)项.

现在问题是当中RecyclerView点水平RecyclerView位于顶部时,切换选项卡上的垂直自动滚动.

例如:

  1. 第1页滚动到此位置

(请注意,第一个H-Recycler视图设置为仅一半可见)

  1. 然后点击tablayout上的第2页,转到第2页.

  2. 现在再次点击tablayout上的第1页返回页面1.这里预期的滚动位置是我们之前离开的位置,但它会自动滚动到顶部位置.像这样

(首先RecyclerView是完全可见而不是一半.)


在找出解决方案时,我得到了一些线索.

  • v24.1.1和v24.2.1的库(在编写本文时最新)会出现此问题,但是当它降级到v23.4.0时,它会按预期工作.很明显,库中的某些东西被修改导致了这种行为.
  • 与包含webview的项目遇到相同的问题.webView和H-recyclerView之间的共同点是两者都可以在内部水平滚动.问题可能与滚动事件的消耗有关.

android android-layout android-support-library android-recyclerview

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

将所有子宽度与 ConstraintLayout 中的最宽子宽度匹配,宽度 = 包装内容

ConstraintLayout 功能强大,但有时也很棘手。

我想实现一个布局ConstraintLayout,可以通过LinearLayout.

  • 蓝色区域是父约束布局。红色部分是LinearLayout。我想通过保持以下条件将此 LinearLayout 转换为 ConstraintLayout

    1. 所有子项(按钮)的宽度应与最宽的子项匹配。
    2. 最宽的孩子不是固定的。它将在运行时更改。
    3. 红框应该保持不变wrap_content

我曾尝试使用障碍、指南和约束布局的其他属性,但没有成功。

这是代码LinearLayout

<android.support.constraint.ConstraintLayout 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:background="#476dce"
android:padding="16dp">

  <LinearLayout
    android:orientation="vertical"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    android:background="#f5aaaa">


    <Button
        android:id="@+id/button1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Button"
        tools:text="Small" />

    <Button
        android:id="@+id/button2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Button"
        tools:text="Bigggggeer" />


    <Button
        android:id="@+id/button3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Button"
        tools:text="Even Bigggggggggeer" />

  </LinearLayout>
</android.support.constraint.ConstraintLayout>
Run Code Online (Sandbox Code Playgroud)

android android-layout android-constraintlayout

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

Android Studio 1.4的新活动片段模式

很多个月以来,我作为android开发人员,使用Activity-Fragment模式来执行Activity.但似乎谷歌决定改变模式(再次).

几天后我将Android工作室更新到v1.4 beta 4.我注意到了Activity积累的新模式.当我尝试从new-> Activity创建新活动时,我找不到"带有空白片段的新活动".相反,有两个新选项"空活动"和"空白活动".在此输入图像描述 我选择了Blank Activity并插入了以下文件.

  1. MainActivity.java(活动类) mainActivity.java文件
  2. activity_main.xml(活动布局) activity_main.xml文件
  3. content_main.xml(activtiy_main.xml包含的活动内容) content_main.xml文件

所以我的问题是,Android开发人员应遵循的新开发模式是什么?

----编辑---- 如何使用先前的活动片段模式 要将"片段"重新打印到图片中,您需要在选择"空白活动"后出现的对话框中选择"使用片段" 在此输入图像描述

android android-fragments android-activity android-studio

5
推荐指数
0
解决办法
2206
查看次数

新短信检索器 API 的广播响应延迟

最近我们决定开始使用SMS Retriever API来读取 OTP。我遵循了所有步骤并且它工作正常

问题是在长时间延迟后BroadcastReceiver得到回调。一旦实际收到短信,系统就会推送短信通知。但是,接收者将在大约一分钟后收到它。

在三星 J3 emerge 上测试。Android 6.0.1、PlayServices 14.5.81。

有人遇到过这个问题吗?API 是否存在接收者优先级问题或任何其他限制?

android android-intent android-broadcast android-broadcastreceiver android-sms

5
推荐指数
0
解决办法
500
查看次数

当初始屏幕在startActivity(intent,options.toBundle())之后调用"finish()"时,Transition会闪烁;

我正在创建一个Android应用程序(棒棒糖版本).应用程序在启动画面中间显示大徽标.登录屏幕顶部包含一个小尺寸的徽标.我使用ActivityOptions.makeSceneTransitionAnimation()将动画从大屏幕的启动画面设置为登录屏幕的小徽标.

启动启动应用程序的启动画面.延迟几毫秒后,启动画面创建登录屏幕的意图.还设置过渡.然后它开始登录活动.它开始了徽标的过渡动画.并成功显示登录屏幕.一切都运作良好,动画是顺利到此为止.

然后我添加了"finish();" 在启动画面中,以便登录屏幕上的后退按钮不会加载闪屏.现在转型正在闪烁.

我尝试了以下方法,但仍有闪烁.

  1. 使用"finishAfterTransition();" 而不是"完成();"
  2. 为意图添加了FLAG_ACTIVITY_CLEAR_TOP和FLAG_ACTIVITY_NEW_TASK标志(这导致了有线行为)
  3. 在登录屏幕中覆盖onBackPressed().并添加
    完成(); android.os.Process.killProcess(android.os.Process.myPid()); - 这会终止应用程序,但会重新启动它.

在这里,我正在粘贴splashScreen的代码.此代码正在运行,但在转换时会闪烁.类末尾的 gotoLoginScreen()方法是加载登录活动的地方.登录界面是android studio的基本活动模板.使用com.android.support:appcompat-v7:21.0.2库来支持较低的设备.

公共类SplashActivity扩展ActionBarActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_splash);
    if (savedInstanceState == null) {
        getSupportFragmentManager().beginTransaction()
                .add(R.id.container, new PlaceholderFragment())
                .commit();
    }
}


@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.menu_splash, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. …
Run Code Online (Sandbox Code Playgroud)

activity-stack android-5.0-lollipop

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