小编Ank*_*wal的帖子

Android ConstraintLayout生成绝对值

我最近开始学习ConstraintLayoutAndroid Studio 2.2中的新功能,并注意到当我添加最简单的视图时,布局编辑器会自动生成一些绝对坐标.这是一个示例XML:

<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:id="@+id/activity_portfolio"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.abc.Activity"
    tools:layout_editor_absoluteX="0dp"
    tools:layout_editor_absoluteY="81dp">

    <TextView
        android:text="@string/creator_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        tools:layout_editor_absoluteX="246dp"
        tools:layout_editor_absoluteY="479dp"
        android:id="@+id/first_textview"
        app:layout_constraintRight_toRightOf="@+id/activity"
        android:layout_marginEnd="16dp"
        tools:layout_constraintRight_creator="0"
        app:layout_constraintBottom_toBottomOf="@+id/activity"
        android:layout_marginBottom="16dp"
        tools:layout_constraintBottom_creator="0" />
</android.support.constraint.ConstraintLayout>
Run Code Online (Sandbox Code Playgroud)

注意绝对喜欢81dp,246dp,479dp...我试图手动删除这些,但是当我回到"设计"选项卡,再回到"文本"选项卡中,这些再生.现在,我有三个问题:

  1. 有没有办法告诉Android Studio不生成这些?
  2. 我应该手动将它们放入dimens.xml
  3. 这些绝对会导致其他设备出现布局问题吗?

android android-layout

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

防止反射 - 安卓

甚至可以通过使用反射来访问我班级的私人成员/功能setAccessible(true).有没有办法阻止外部代码的这种访问?

我读了一些关于堆栈溢出的东西,我可以用它SecurityManager来防止applet中的反射(不知道它是如何工作的),但是Android也有类似的机制吗?也许是注释或聪明的编程?

reflection android

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

使用改造库android的Outofmemory异常

我正在使用改造库从服务器下载apk文件.我从8 MB文件中获取OutofmemoryException.

06-04 17:02:36.242: I/dalvikvm(32227): "AsyncTask #1" prio=5 tid=12 RUNNABLE
06-04 17:02:36.242: I/dalvikvm(32227):   | group="main" sCount=0 dsCount=0 obj=0x40fc7eb8 self=0x2a1096a8
06-04 17:02:36.242: I/dalvikvm(32227):   | sysTid=32247 nice=10 sched=0/0 cgrp=apps/bg_non_interactive handle=705879936
06-04 17:02:36.242: I/dalvikvm(32227):   | schedstat=( 1325450565 1518168555 7526 ) utm=87 stm=45 core=0
06-04 17:02:36.242: I/dalvikvm(32227):   at java.io.ByteArrayOutputStream.expand(ByteArrayOutputStream.java:~91)
06-04 17:02:36.242: I/dalvikvm(32227):   at java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:201)
06-04 17:02:36.242: I/dalvikvm(32227):   at retrofit.Utils.streamToBytes(Utils.java:44)
06-04 17:02:36.252: I/dalvikvm(32227):   at retrofit.Utils.readBodyToBytesIfNecessary(Utils.java:81)
06-04 17:02:36.252: I/dalvikvm(32227):   at retrofit.RestAdapter$RestHandler.invokeRequest(RestAdapter.java:348)
06-04 17:02:36.252: I/dalvikvm(32227):   at retrofit.RestAdapter$RestHandler.invoke(RestAdapter.java:240)
06-04 17:02:36.252: I/dalvikvm(32227):   at $Proxy0.getApkFile(Native Method)
Run Code Online (Sandbox Code Playgroud)

我的代码:

RestAdapter …
Run Code Online (Sandbox Code Playgroud)

java android retrofit

6
推荐指数
0
解决办法
437
查看次数

Android Activity 正在重新启动

我正在制作一个应用程序,其中的一项功能是每 10 秒更新一次用户位置。到目前为止,应用程序没有更新它的位置,因为在检索位置之前,活动已暂停并重新启动。我不明白为什么要重新启动活动。我最好的猜测是,由于没有很多事情发生,操作系统正在暂停活动,但是什么会触发活动重新启动?我之前尝试过构建应用程序,然后我从头开始,因为我犯了太多错误,但即使如此,我以前也没有遇到过这个问题。

D/selectRouteAndTransportMethod: On Start
D/myLocation: Connection Requested
D/selectRouteAndTransportMethod: Connecting
D/selectRouteAndTransportMethod: registered
D/myLocation: Connection Requested
V/FA: Activity resumed, time: 8562145
V/FA: Screen exposed for less than 1000 ms. Event not sent. time: 32
V/FA: Activity paused, time: 8562177
V/FA: onActivityCreated
D/Activity: performCreate Call secproduct feature valuefalse
D/Activity: performCreate Call debug elastic valuetrue
D/selectRouteAndTransportMethod: On Start
D/myLocation: Connection Requested
D/selectRouteAndTransportMethod: Connecting
D/selectRouteAndTransportMethod: registered
D/myLocation: Connection Requested
V/FA: Activity resumed, time: 8562374
D/myLocation: OnConnected
D/myLocation: Permission Was Granted
V/FA: Screen exposed …
Run Code Online (Sandbox Code Playgroud)

java lifecycle android google-api-client android-activity

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

Angular 7 i18n 内部服务、组件和无模板的翻译

我正在尝试从 ngx-translate 迁移到 Angular i18n 方法,并希望在迁移前确定几点。

  1. 是否可以在没有任何模板的情况下在服务和组件内部进行翻译?在 ngx-translate 中,可以使用翻译管道。
  2. angular 是否为 V7 引入了任何方法或计划在 v8 中引入用于转换内部组件和服务级别的方法?
  3. 这目前是否只能使用变通方法并且没有角度的方法来做到这一点?如果是,我应该使用 angular i18n 方法还是更好地继续使用ng-tranlate包?

提前致谢!

internationalization ngx-translate angular7

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

Android最大共享库大小

我正在尝试将一些Linux代码移植到Android.我意识到代码将涉及几个jni引用的.so共享库,其大小超过20 mb.

我想知道每个.so是否有最大尺寸?

此外,我的应用程序可以拥有.so文件的最大总大小,因为.so文件实际上是内存映射的吗?

我用Google搜索并发现几乎没有,所以描述这个的资源会非常有用

android memory-management shared-libraries

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

父类的init块中的null值

我正在创建一个非常简单的kotlin程序,并且看到父类的行为很奇怪。

代码是:

fun makeSalt(name:String) = Spice(name, "non-spicy")
fun main(args: Array<String>) {
    var salt : Spice = Spice("salt", "non-spicy")

    println("Salt heat = ${salt.heat}")

    val spicelist = listOf<Spice>(
        Spice("salt", "non-spicy"),
        Spice("turmeric", "mild"),
        Spice("Pepper", "hot"),
        Spice("Chilli", "hot"),
        Spice("Sugar", "non-spicy")
    )

    val mildSpices = spicelist.filter{it.heat <=5}

    val salt2 = makeSalt("rock salt")

    val bhoot : SubSpice = SubSpice("bhoot", "hot")
}


open class Spice(open var name:String, open var spiciness:String = "mild" ){
    var heat : Int = 5
        get() = when (spiciness){
            "mild"->5
            "hot"->10
            "non-spicy"->1
            else …
Run Code Online (Sandbox Code Playgroud)

kotlin

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