Эффект -Dhttps.protocols=TLSv1
не уверен, он может зависеть от реализации и версии Java, как указано в Справочном руководстве JSSE :
Это свойство в настоящее время используемое реализацией JSSE, но не гарантируется, что его будут проверять и использовать другими реализациями.
blockquote>В том же руководстве предлагается использовать
-Djdk.tls.client.protocols=TLSv1
, если ваша Java достаточно недавняя.Чтобы проверить, вы можете добавить другое свойство, чтобы посмотреть, что происходит на самом деле (
-Djavax.net.debug=all
), или сделать захват сети и посмотреть на ClientHello.
Так я решил свою проблему. Вы должны изменить статические значения. Я надеюсь, что это работает.
@Override
public void onClick(View view) {
ViewHolder holder = (ViewHolder) recyclerView.findViewHolderForAdapterPosition(selectedItem);
if (holder != null) {
holder.expandButton.setSelected(false);
holder.expandableLayout.collapse();
}
int position = getAdapterPosition();
//dynamic Listview Height calculate start
float scale = view.getContext().getResources().getConfiguration().fontScale;
int hh = 0;
try {
WindowManager wm = (WindowManager) view.getContext().getSystemService(Context.WINDOW_SERVICE);
Display display = wm.getDefaultDisplay();
int width = display.getWidth(); // deprecated
int height = display.getHeight(); // deprecated
View childView = listdetail.getAdapter().getView(0, null, listdetail);
childView.measure(UNBOUNDED, UNBOUNDED);
hh=childView.getMeasuredHeight();
} catch (Exception e) {
e.printStackTrace();
}
int scl = (int)(scale * (12f));
scl = scl<=0?1:scl;
ViewGroup.LayoutParams params = listdetail.getLayoutParams();
if(hh<=0) {
params.height = 10 * (listdetail.getAdapter().getCount()) * scl;
}
else {
params.height = (int) (((scale<0f?1f:1f) *hh * (listdetail.getAdapter().getCount()))+10);
}
listdetail.setLayoutParams(params);
//dynamic Listview Height calculate stop
if (position == selectedItem) {
selectedItem = UNSELECTED;
} else {
expandButton.setSelected(true);
expandableLayout.expand();
selectedItem = position;
}
}