小编Ale*_*scu的帖子

动画和setVisibility

我有一个LinearLayout,我希望能够通过点击"更多详细信息"链接来显示/隐藏.我是通过打电话来做的

moreDetailsSection.setVisibility(View.VISIBLE);
Run Code Online (Sandbox Code Playgroud)

要么

moreDetailsSection.setVisibility(View.GONE);
Run Code Online (Sandbox Code Playgroud)

显示/隐藏它.这工作正常,但我想添加一个动画,使布局字段很好地滑动,但这只是在第一次使字段可见时运行,如果我隐藏它并再次显示该字段只是突然出现.这是动画代码(moreDetailsS​​ection是有问题的布局):

      AnimationSet set = new AnimationSet(true);

      Animation animation = new AlphaAnimation(0.0f, 1.0f);
      animation.setDuration(250);
      set.addAnimation(animation);

      animation = new TranslateAnimation(
          Animation.RELATIVE_TO_SELF, 1.0f, Animation.RELATIVE_TO_SELF, 0.0f,
          Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO_SELF, 0.0f
      );
      animation.setDuration(150);
      set.addAnimation(animation);

      LayoutAnimationController controller =
          new LayoutAnimationController(set, 0.25f);
      moreDetailsSection.setLayoutAnimation(controller);
Run Code Online (Sandbox Code Playgroud)

关于如何使这个运行的任何建议我每次显示布局而不仅是第一次?

animation android

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

我可以在哪里放置 `suppressKotlinVersionCompatibilityCheck` 标志?

我正在尝试使用1.4.21-2kotlin 的最新版本,该版本有一个修复程序,允许您使用 Compose + Kotlin 序列化而不会挂起构建。这一切都很好,但是,Compose 编译器不知道它并给出以下(相当无用的)错误:

e:Compose Compiler 的此版本 (1.0.0-alpha09) 需要 Kotlin 1.4.21 版,但您似乎使用的是 Kotlin 1.4.21-2 版,该版本不兼容。请修复您的配置(或者suppressKotlinVersionCompatibilityCheck但不要说我没有警告您!)。

我很想提供那个抑制标志,但是我不知道把它放在哪里......我花了大约一个小时试图将它放在我的 gradle 文件中的随机位置,例如 in composeOptions,但没有运气。我也尝试了我知道的所有 google-fu,但似乎没有人真正使用过它并写过任何关于它的东西。

任何想法如何摆脱这种困境?

android-jetpack-compose

12
推荐指数
5
解决办法
4303
查看次数

第一次自己的R.java没有生成

我已尽力生成R.java文件,但徒劳无功.我刚刚创建了一个android项目,在创建android项目时,它没有创建R.java文件!我的项目中存在编译错误,因为我仍然需要将android.jar文件添加到我的项目中,但即使添加了jar文件,清理现有构建并再次构建它也无法正常工作.

然后我在eclipse中检查了"自动构建"选项.即使这没有帮助!

很少有事情需要注意:

1)我用build-target android 2.2和API version 8创建了android项目.

2)我想告诉的是,在创建项目时,它给出了一个错误,说找不到proguard.cfg!我找不到'default.properties'文件来删除引用proguard.cfg条目的条目.

3)我的环境变量中的JAVA_HOME指向jdk1.4.不知道这不应该是这个原因!

4)内容

1.main.xml

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
    >
    <TextView  
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:text="@string/hello"
    />
    </LinearLayout>
Run Code Online (Sandbox Code Playgroud)

2.strings.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">Hello World, HelloAndroidActivity!</string>
    <string name="app_name">Hello, Android !!</string>
</resources>
Run Code Online (Sandbox Code Playgroud)

3.AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.pack.android.test"
  android:versionCode="1"
  android:versionName="1.0">
<uses-sdk android:minSdkVersion="8" />

<application android:icon="@drawable/icon" android:label="@string/app_name">
    <activity android:name=".HelloAndroidActivity"
              android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

</application>

</manifest>
Run Code Online (Sandbox Code Playgroud)

4.Code for HelloWorldActivity.java

  package com.pack.android.test;

  import android.app.Activity;
  import android.os.Bundle;

  public …
Run Code Online (Sandbox Code Playgroud)

android

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

OkHttp3日志拦截器不记录cookie

我正在使用OkHttp 3(使用retrofit2),我正在尝试让cookie和日志记录工作.问题是日志显示所有内容,但不显示cookie.我已经捕获了HTTP流量并且正在发送cookie,它们只是没有被记录.我尝试调试日志记录拦截器,实际上,当请求到达intercept()调用时似乎没有cookie(尽管它有其他自定义标头).有什么想法我做错了什么?

    final Gson gson = new GsonBuilder()
            .setDateFormat(JSON_DATE_FORMAT)
            .create();

    HttpLoggingInterceptor logging = new HttpLoggingInterceptor();
    logging.setLevel(HttpLoggingInterceptor.Level.BODY);
    CookieManager cookieManager = new CookieManager();
    cookieManager.setCookiePolicy(CookiePolicy.ACCEPT_ALL);

    OkHttpClient.Builder okClientBuilder = new OkHttpClient.Builder()
        .addInterceptor(new Interceptor() {
            @Override
            public Response intercept(Chain chain) throws IOException {
                Request request = chain
                        .request()
                        .newBuilder()
                        .addHeader("custom-header", Utils.getRandomUUIDForHeader())
                        .build();
                return chain.proceed(request);
            }
        })
        .cookieJar(new JavaNetCookieJar(cookieManager))
        .addInterceptor(logging);

    if (mock) {
        okClientBuilder.addInterceptor(new MockApiInterceptor(context));
    }

    return new Retrofit
            .Builder()
            .baseUrl(serverURL)
            .client(okClientBuilder.build())
            .addConverterFactory(ScalarsConverterFactory.create())
            .addConverterFactory(GsonConverterFactory.create(gson))
            .build()
            .create(DefaultApi.class);
Run Code Online (Sandbox Code Playgroud)

样本输出:

<-- 200 OK http://localhost:53580/login (31ms)
Content-Length: 66 …
Run Code Online (Sandbox Code Playgroud)

okhttp okhttp3

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

EmojiCompat Flags 不适用于 Marshmallow 及更高版本(但适用于较旧的操作系统版本)

我正在尝试使用新的EmojiCompatTextView. 它适用于较旧的 Android 版本,但在 Marshmallow 及以上版本上显示占位符问号标志。这是 XML:

            <android.support.text.emoji.widget.EmojiAppCompatTextView
                android:id="@+id/opponent_flag"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginEnd="8dp"
                android:textSize="14sp"
                android:text=""
                android:layout_gravity="center_vertical"
                />
Run Code Online (Sandbox Code Playgroud)

以及初始化 EmojiCompat 的代码(直接来自谷歌文档):

val config: EmojiCompat.Config
// Use a downloadable font for EmojiCompat
val fontRequest = FontRequest(
        "com.google.android.gms.fonts",
        "com.google.android.gms",
        "Noto Color Emoji Compat",
        R.array.com_google_android_gms_fonts_certs)
config = FontRequestEmojiCompatConfig(applicationContext, fontRequest)
        .setReplaceAll(true)
        .registerInitCallback(object : EmojiCompat.InitCallback() {
            override fun onInitialized() {
                Log.i(TAG, "EmojiCompat initialized")
            }

            override fun onFailed(@Nullable throwable: Throwable?) {
                Log.e(TAG, "EmojiCompat initialization failed", throwable)
            }
        })
EmojiCompat.init(config)
Run Code Online (Sandbox Code Playgroud)

EmojiCompat initialized在日志中收到消息,事实上,除了标志之外,我尝试过的所有其他表情符号都可以工作。

以下 Lollipop 和 …

android android-support-library

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