我正在开发一个概念验证,我在TableLayout中有一些自定义视图.单击其中一个视图时,我想要为扩展为新活动的视图设置动画.我想要达到的效果类似于这里看到的效果.
从我的研究来看,似乎这样做的方法是使用共享元素Transitions.但是,我无法让它正常工作,我想知道是否因为我使用自己的自定义视图.
具体来说,衰落正在发生,但缩放和翻译动作不是.检查下面的GIF,看看我在哪里.在示例中,我单击左上角的圆圈,我想将其转换为新活动中的整个圆圈.按下后退按钮时也会出现此问题.
我认为这是不正确的,因为必须绘制视图,但有没有办法进一步自定义我的视图以使其工作?我发现的这种转换的所有示例都包含ImageViews,Buttons和TextViews.
以下是相关来源.我的自定义视图很大,不包含任何特殊代码,只是覆盖onDraw()和onMeasure().
MainActivity.java
package com.rscottcarson.circleschedulertest;
import android.app.Activity;
import android.app.ActivityOptions;
import android.content.Intent;
import android.support.v4.app.ActivityOptionsCompat;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.widget.Toast;
public class MainActivity extends Activity {
private View view1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
view1 = findViewById(R.id.circle1);
view1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(MainActivity.this, DetailActivity.class);
// create the transition animation - the images in the layouts
// of both activities …Run Code Online (Sandbox Code Playgroud) android android-custom-view android-transitions shared-element-transition
我有一个CoordinatorLayout,它有一个自定义视图和一个持久的底部工作表.我已禁用底部工作表的隐藏,并希望在折叠状态下显示LinearLayout中的顶部视图.为了考虑不同的屏幕尺寸,我在所有布局完成后,动态地将peekHeight设置在我的活动的onCreate中.
问题是当活动首次开始时,BottomSheet在一个高度偷看,然后在它再次展开和折叠之后,peekHeight似乎已经改变了.有趣的是,它在视觉上看起来像peekHeight添加的是布局活动填充(16dp).但是,BottomSheetBehavior为两者报告相同的peekHeight.
我为此创建了一个hacky解决方法,但我想知道是否有任何我做错了.下面是一个gif显示我没有我的解决方法和一个当我使用我的解决方法时.我还包括相关的代码和布局文件.再次,它似乎与我的填充(16dp)直接相关,但我不明白如何解决它.
不使用变通方法:
使用变通方法:
活动:
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.edit_schedule_details_activity);
final CoordinatorLayout activityLayout =
(CoordinatorLayout) findViewById(R.id.edit_schedule_details_layout);
ButterKnife.bind(this);
// ... removed unrelated logic
final View bottomSheet = findViewById(R.id.edit_details_sheet);
final LinearLayout peekContainer = (LinearLayout) findViewById(R.id.info_title_container);
activityLayout
.getViewTreeObserver()
.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
// Set the measured peek height and add in 16 dps to account for inconsistency
// Adding the 16 dps is part of the workaround
bottomSheetBehavior.setPeekHeight(peekContainer.getHeight());
//+ (int) (16 * getResources().getDisplayMetrics().density)); /* …Run Code Online (Sandbox Code Playgroud) android android-layout android-coordinatorlayout bottom-sheet
我正在开发一个应用程序,我必须通过HTTPS与具有自签名证书的嵌入式IoT产品进行通信.我成功设置了OkHttp以使用自签名证书,并通过RxCallAdapters通过Retrofit2进行网络调用.
嵌入式产品一次只能处理一个连接,所以我将我的底层OkHttp实例配置为只允许一个连接(据我所知,也许有更好的方法).
如果我只是发出GET请求,则握手成功完成,并且连接对整个请求序列保持打开状态.嵌入式产品在5秒钟不活动后关闭连接,因此我需要每隔一段时间重新进行一次握手.
在执行PUT和POST请求时会出现问题.当请求流从一种请求类型更改为另一种请求类型时,OkHttp似乎不会保持现有连接打开,或者实际上只要请求是PUT或POST.例如:
握手 - 得 - 握 - 握 - 握手 - 握 - 握手 - 得......等等
如何强制OkHttp在不同类型的请求之间保持连接打开?我知道它应该没关系,但似乎与响应代码有关.嵌入式设备上的REST API为GET提供200,为POST提供201,为PUT提供204.
这是我用来配置OkHttp和我的改造实例的相关代码:
@Provides
@Singleton
fun provideHttpLoggingInterceptor(): HttpLoggingInterceptor {
val httpLoggingInterceptor = HttpLoggingInterceptor { message -> Timber.tag("OkHttp").d(message) }
setLogLevel(httpLoggingInterceptor)
return httpLoggingInterceptor
}
private fun setLogLevel(httpLoggingInterceptor: HttpLoggingInterceptor) {
if (BuildConfig.DEBUG) {
httpLoggingInterceptor.level = HttpLoggingInterceptor.Level.BODY
} else {
httpLoggingInterceptor.level = HttpLoggingInterceptor.Level.NONE
}
}
@Provides
@Singleton
fun provideContentTypeHeaderInterceptor(): Interceptor {
return Interceptor { chain ->
val originalRequest = chain.request()
val requestBuilder = originalRequest.newBuilder()
requestBuilder.header("Content-Type", …Run Code Online (Sandbox Code Playgroud) 我已经在ANdroid开发者网站上完成了PreferenceFragments和SharedPreferences的示例,但是我现在遇到了一个问题.我希望能够从不同的活动中访问"设置"屏幕中的首选项,但我不知道我的首选项片段生成的首选项文件的名称是什么.有没有人知道为PreferenceFragment指定首选项文件名?