|
|
@@ -125,6 +125,16 @@ public class ActFindGame extends BaseActivity {
|
|
|
((AppBarLayout) findViewById(R.id.appbar_act_game_details)).addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener() {
|
|
|
@Override
|
|
|
public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) {
|
|
|
+ int nameWidth = find_game_name_tv.getWidth();
|
|
|
+ if (nameWidth == 0) {
|
|
|
+ find_game_name_tv.measure(0, 0);
|
|
|
+ nameWidth = find_game_name_tv.getMeasuredWidth();
|
|
|
+ }
|
|
|
+ int infoWidth = find_game_info_tv.getWidth();
|
|
|
+ if (infoWidth == 0) {
|
|
|
+ find_game_info_tv.measure(0, 0);
|
|
|
+ infoWidth = find_game_info_tv.getMeasuredWidth();
|
|
|
+ }
|
|
|
//图标位置变化
|
|
|
int find_game_top = getResources().getDimensionPixelSize(R.dimen.find_game_top);
|
|
|
int find_icon_with = getResources().getDimensionPixelSize(R.dimen.find_icon_with);
|
|
|
@@ -132,6 +142,7 @@ public class ActFindGame extends BaseActivity {
|
|
|
int titleHeight = img_baseactivity_title.getHeight();
|
|
|
int titleWidth = img_baseactivity_title.getWidth();
|
|
|
int topRow = (titleHeight - find_game_name_tv.getHeight() - find_game_info_tv.getHeight()) / 5;
|
|
|
+ int leftRow = isNeedReservation ? topRow : 5 * topRow;
|
|
|
|
|
|
int willTop = Math.max(topRow/2, find_game_top + verticalOffset);
|
|
|
int row = (find_icon_with * willTop + titleHeight * (find_game_top - willTop)) / find_game_top - topRow;
|
|
|
@@ -143,13 +154,13 @@ public class ActFindGame extends BaseActivity {
|
|
|
find_game_iv.setLayoutParams(layoutParams);
|
|
|
//名字位置变化
|
|
|
RelativeLayout.LayoutParams layoutParams2 = (RelativeLayout.LayoutParams) find_game_name_tv.getLayoutParams();
|
|
|
- layoutParams2.leftMargin = Math.max(titleWidth + row + 2 * topRow, (G.WIDTH - find_game_name_tv.getWidth()) / 2 + verticalOffset);
|
|
|
+ layoutParams2.leftMargin = Math.max(titleWidth + row + 2 * leftRow, (G.WIDTH - nameWidth) / 2 + verticalOffset);
|
|
|
layoutParams2.topMargin = Math.max(2 * topRow, getResources().getDimensionPixelSize(R.dimen.find_game_top2) + verticalOffset);
|
|
|
find_game_name_tv.setLayoutParams(layoutParams2);
|
|
|
//信息位置变化
|
|
|
RelativeLayout.LayoutParams layoutParams3 = (RelativeLayout.LayoutParams) find_game_info_tv.getLayoutParams();
|
|
|
- int left1 = (G.WIDTH - find_game_info_tv.getWidth()) / 2;
|
|
|
- int left2 = titleWidth + row + 2 * topRow;
|
|
|
+ int left1 = (G.WIDTH - infoWidth) / 2;
|
|
|
+ int left2 = titleWidth + row + 2 * leftRow;
|
|
|
layoutParams3.leftMargin = left2 > left1 ? Math.min(left2, left1 - verticalOffset) : Math.max(left2, left1 + verticalOffset);
|
|
|
layoutParams3.topMargin = Math.max(find_game_name_tv.getHeight() + 4 * topRow, getResources().getDimensionPixelSize(R.dimen.find_game_top3) + verticalOffset);
|
|
|
find_game_info_tv.setLayoutParams(layoutParams3);
|
|
|
@@ -163,7 +174,6 @@ public class ActFindGame extends BaseActivity {
|
|
|
layoutParams5.topMargin = getResources().getDimensionPixelSize(R.dimen.find_game_top5) + verticalOffset;
|
|
|
find_game_xin.setLayoutParams(layoutParams5);
|
|
|
if (willTop == topRow/2) {
|
|
|
- LogUtil.println("ActFindGame", "onOffsetChanged", 2, verticalOffset);
|
|
|
if (mIsExpanded) {
|
|
|
// txt_baseactivity_title.setVisibility(View.INVISIBLE);
|
|
|
find_game_bar.setVisibility(View.VISIBLE);
|
|
|
@@ -314,17 +324,19 @@ public class ActFindGame extends BaseActivity {
|
|
|
TextView find_game_down_tv;
|
|
|
|
|
|
private FindApp findApp;
|
|
|
-
|
|
|
+ private boolean isNeedReservation = false;
|
|
|
private void loadData(final FindApp findApp) {
|
|
|
this.findApp = findApp;
|
|
|
//游戏简介与下载
|
|
|
ViewUtil.setImage(find_game_iv, findApp.getIcon());
|
|
|
ViewUtil.setText(find_game_name_tv, findApp.getName());
|
|
|
- final boolean isNeedReservation = !findApp.isCanDonload();//这里认为只有两种状态:可下载与预约下载
|
|
|
+ isNeedReservation = !findApp.isCanDonload();//这里认为只有两种状态:可下载与预约下载
|
|
|
if (isNeedReservation)
|
|
|
ViewUtil.setText(find_game_info_tv, String.format(Locale.CHINA, "开放时间:%s", TimeUtil.TimeStamp2Date(findApp.getDownload_at(), "yyyy-MM-dd\u0020HH:mm")));
|
|
|
- else
|
|
|
- ViewUtil.setText(find_game_info_tv, String.format(Locale.CHINA, "厂商:%s | 版本号:%s\u0020包体大小:%sM", findApp.getManufacturer(), findApp.getVersions(), findApp.getPackage_size()));
|
|
|
+ else {
|
|
|
+ String format = !TextUtils.isEmpty(findApp.getManufacturer()) && findApp.getManufacturer().length() > 5 ? "厂商:%s\n版本号:%s | 包体大小:%sM" : "厂商:%s | 版本号:%s\n包体大小:%sM";
|
|
|
+ ViewUtil.setText(find_game_info_tv, String.format(Locale.CHINA, format, findApp.getManufacturer(), findApp.getVersions(), findApp.getPackage_size()));
|
|
|
+ }
|
|
|
|
|
|
find_game_xin.setRating(findApp.getScore() / 2);
|
|
|
|