我有一个LinearLayout,我希望能够通过点击"更多详细信息"链接来显示/隐藏.我是通过打电话来做的
moreDetailsSection.setVisibility(View.VISIBLE);
Run Code Online (Sandbox Code Playgroud)
要么
moreDetailsSection.setVisibility(View.GONE);
Run Code Online (Sandbox Code Playgroud)
显示/隐藏它.这工作正常,但我想添加一个动画,使布局字段很好地滑动,但这只是在第一次使字段可见时运行,如果我隐藏它并再次显示该字段只是突然出现.这是动画代码(moreDetailsSection是有问题的布局):
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)
关于如何使这个运行的任何建议我每次显示布局而不仅是第一次?
我正在尝试使用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,但似乎没有人真正使用过它并写过任何关于它的东西。
任何想法如何摆脱这种困境?
我已尽力生成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) 我正在使用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) 我正在尝试使用新的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 和 …