Skip to content
Toggle navigation
Projects
Groups
Snippets
Help
polysoft-nafmii
/
polysoft-android
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit dfa7cc02
authored
Sep 06, 2021
by
amateur
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
1
1 parent
725875a5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
48 additions
and
25 deletions
app/src/main/java/com/polysoft/nafmii/fragment/home/ModuleUrlHandle.java
app/src/main/java/com/polysoft/nafmii/utils/AndroidBug5497Workaround.java
app/src/main/java/com/whaty/nafmii/activity/HomeActivity.java
app/src/main/java/com/whaty/nafmii/activity/OutsideWebviewActivity.java
app/src/main/java/com/whaty/nafmii/activity/WebviewActivity.java
app/src/main/java/com/polysoft/nafmii/fragment/home/ModuleUrlHandle.java
View file @
dfa7cc0
...
@@ -54,8 +54,8 @@ public class ModuleUrlHandle {
...
@@ -54,8 +54,8 @@ public class ModuleUrlHandle {
// }
// }
// Uri uri = Uri.parse(urlStr);
// Uri uri = Uri.parse(urlStr);
// return uri.getScheme() +":"+ uri.getSchemeSpecificPart() + module.webUrl;
// return uri.getScheme() +":"+ uri.getSchemeSpecificPart() + module.webUrl;
//
return "http://10.10.81.189/h5/?"+System.currentTimeMillis() + module.webUrl;
return
"http://10.10.81.189/h5/?"
+
System
.
currentTimeMillis
()
+
module
.
webUrl
;
return
"http://192.168.137.1:8080/"
+
System
.
currentTimeMillis
()
+
module
.
webUrl
;
//
return "http://192.168.137.1:8080/"+System.currentTimeMillis() + module.webUrl;
}
}
return
intent
.
getStringExtra
(
module
.
name
);
return
intent
.
getStringExtra
(
module
.
name
);
}
}
...
...
app/src/main/java/com/polysoft/nafmii/utils/AndroidBug5497Workaround.java
View file @
dfa7cc0
...
@@ -2,55 +2,76 @@ package com.polysoft.nafmii.utils;
...
@@ -2,55 +2,76 @@ package com.polysoft.nafmii.utils;
import
android.app.Activity
;
import
android.app.Activity
;
import
android.graphics.Rect
;
import
android.graphics.Rect
;
import
android.os.Build
;
import
android.view.View
;
import
android.view.View
;
import
android.view.ViewTreeObserver
;
import
android.view.ViewTreeObserver
;
import
android.widget.FrameLayout
;
import
android.widget.FrameLayout
;
public
class
AndroidBug5497Workaround
{
public
class
AndroidBug5497Workaround
{
public
static
void
assistActivity
(
Activity
activity
)
{
// For more information, see https://code.google.com/p/android/issues/detail?id=5497
// To use this class, simply invoke assistActivity() on an Activity that already has its content view set.
public
static
void
assistActivity
(
Activity
activity
)
{
new
AndroidBug5497Workaround
(
activity
);
new
AndroidBug5497Workaround
(
activity
);
}
}
private
View
mChildOfContent
;
private
View
mChildOfContent
;
private
int
usableHeightPrevious
;
private
int
usableHeightPrevious
;
private
FrameLayout
.
LayoutParams
frameLayoutParams
;
private
FrameLayout
.
LayoutParams
frameLayoutParams
;
private
int
contentHeight
;
private
boolean
isfirst
=
true
;
private
Activity
activity
;
private
int
statusBarHeight
;
private
AndroidBug5497Workaround
(
Activity
activity
)
{
private
AndroidBug5497Workaround
(
Activity
activity
)
{
// FrameLayout content = (FrameLayout) activity.findViewById(android.R.id.content);
//获取状态栏的高度
// mChildOfContent = content.getChildAt(0);
int
resourceId
=
activity
.
getResources
().
getIdentifier
(
"status_bar_height"
,
"dimen"
,
"android"
);
// mChildOfContent.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
statusBarHeight
=
activity
.
getResources
().
getDimensionPixelSize
(
resourceId
);
// public void onGlobalLayout() {
this
.
activity
=
activity
;
// possiblyResizeChildOfContent();
FrameLayout
content
=
(
FrameLayout
)
activity
.
findViewById
(
android
.
R
.
id
.
content
);
// }
mChildOfContent
=
content
.
getChildAt
(
0
);
// });
// frameLayoutParams = (FrameLayout.LayoutParams) mChildOfContent.getLayoutParams();
//界面出现变动都会调用这个监听事件
mChildOfContent
.
getViewTreeObserver
().
addOnGlobalLayoutListener
(
new
ViewTreeObserver
.
OnGlobalLayoutListener
()
{
public
void
onGlobalLayout
()
{
if
(
isfirst
)
{
contentHeight
=
mChildOfContent
.
getHeight
();
//兼容华为等机型
isfirst
=
false
;
}
possiblyResizeChildOfContent
();
}
});
frameLayoutParams
=
(
FrameLayout
.
LayoutParams
)
mChildOfContent
.
getLayoutParams
();
}
}
//重新调整跟布局的高度
private
void
possiblyResizeChildOfContent
()
{
private
void
possiblyResizeChildOfContent
()
{
int
usableHeightNow
=
computeUsableHeight
();
int
usableHeightNow
=
computeUsableHeight
();
//当前可见高度和上一次可见高度不一致 布局变动
if
(
usableHeightNow
!=
usableHeightPrevious
)
{
if
(
usableHeightNow
!=
usableHeightPrevious
)
{
//int usableHeightSansKeyboard2 = mChildOfContent.getHeight();//兼容华为等机型
int
usableHeightSansKeyboard
=
mChildOfContent
.
getRootView
().
getHeight
();
int
usableHeightSansKeyboard
=
mChildOfContent
.
getRootView
().
getHeight
();
int
heightDifference
=
usableHeightSansKeyboard
-
usableHeightNow
;
int
heightDifference
=
usableHeightSansKeyboard
-
usableHeightNow
;
if
(
heightDifference
>
(
usableHeightSansKeyboard
/
4
))
{
if
(
heightDifference
>
(
usableHeightSansKeyboard
/
4
))
{
// keyboard probably just became visible
// keyboard probably just became visible
frameLayoutParams
.
height
=
usableHeightSansKeyboard
-
heightDifference
;
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
KITKAT
){
//frameLayoutParams.height = usableHeightSansKeyboard - heightDifference;
frameLayoutParams
.
height
=
usableHeightSansKeyboard
-
heightDifference
+
statusBarHeight
;
}
else
{
frameLayoutParams
.
height
=
usableHeightSansKeyboard
-
heightDifference
;
}
}
else
{
}
else
{
// keyboard probably just became hidden
frameLayoutParams
.
height
=
contentHeight
;
frameLayoutParams
.
height
=
usableHeightSansKeyboard
;
}
}
mChildOfContent
.
requestLayout
();
mChildOfContent
.
requestLayout
();
usableHeightPrevious
=
usableHeightNow
;
usableHeightPrevious
=
usableHeightNow
;
}
}
}
}
/** * 计算mChildOfContent可见高度 ** @return */
private
int
computeUsableHeight
()
{
private
int
computeUsableHeight
()
{
Rect
r
=
new
Rect
();
Rect
r
=
new
Rect
();
mChildOfContent
.
getWindowVisibleDisplayFrame
(
r
);
mChildOfContent
.
getWindowVisibleDisplayFrame
(
r
);
return
(
r
.
bottom
-
r
.
top
);
// 全屏模式下: return r.bottom
return
(
r
.
bottom
-
r
.
top
);
}
}
}
}
\ No newline at end of file
\ No newline at end of file
app/src/main/java/com/whaty/nafmii/activity/HomeActivity.java
View file @
dfa7cc0
...
@@ -11,6 +11,7 @@ import androidx.fragment.app.Fragment;
...
@@ -11,6 +11,7 @@ import androidx.fragment.app.Fragment;
import
com.polysoft.nafmii.bean.MenuBean
;
import
com.polysoft.nafmii.bean.MenuBean
;
import
com.polysoft.nafmii.enums.ModulesEnum
;
import
com.polysoft.nafmii.enums.ModulesEnum
;
import
com.polysoft.nafmii.fragment.home.ModulesFragmentMgr
;
import
com.polysoft.nafmii.fragment.home.ModulesFragmentMgr
;
import
com.polysoft.nafmii.utils.AndroidBug5497Workaround
;
import
com.whaty.nafmii.R
;
import
com.whaty.nafmii.R
;
import
java.util.HashMap
;
import
java.util.HashMap
;
...
@@ -29,6 +30,7 @@ public class HomeActivity extends WebviewActivity implements View.OnClickListene
...
@@ -29,6 +30,7 @@ public class HomeActivity extends WebviewActivity implements View.OnClickListene
protected
void
onCreate
(
Bundle
savedInstanceState
)
{
protected
void
onCreate
(
Bundle
savedInstanceState
)
{
super
.
onCreate
(
savedInstanceState
);
super
.
onCreate
(
savedInstanceState
);
super
.
setContentView
(
R
.
layout
.
activity_home
);
super
.
setContentView
(
R
.
layout
.
activity_home
);
AndroidBug5497Workaround
.
assistActivity
(
this
);
this
.
initView
();
this
.
initView
();
this
.
initHomeModule
();
this
.
initHomeModule
();
}
}
...
...
app/src/main/java/com/whaty/nafmii/activity/OutsideWebviewActivity.java
View file @
dfa7cc0
...
@@ -15,6 +15,7 @@ import androidx.fragment.app.FragmentTransaction;
...
@@ -15,6 +15,7 @@ import androidx.fragment.app.FragmentTransaction;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSON
;
import
com.polysoft.nafmii.bean.OpenUrlBean
;
import
com.polysoft.nafmii.bean.OpenUrlBean
;
import
com.polysoft.nafmii.fragment.WebViewFragment
;
import
com.polysoft.nafmii.fragment.WebViewFragment
;
import
com.polysoft.nafmii.utils.AndroidBug5497Workaround
;
import
com.polysoft.nafmii.utils.FileUtils
;
import
com.polysoft.nafmii.utils.FileUtils
;
import
com.polysoft.nafmii.utils.StatusBarUtils
;
import
com.polysoft.nafmii.utils.StatusBarUtils
;
import
com.polysoft.nafmii.utils.ToastUtils
;
import
com.polysoft.nafmii.utils.ToastUtils
;
...
@@ -37,6 +38,7 @@ public class OutsideWebviewActivity extends WebviewActivity {
...
@@ -37,6 +38,7 @@ public class OutsideWebviewActivity extends WebviewActivity {
}
}
super
.
setContentView
(
R
.
layout
.
activity_webview
);
super
.
setContentView
(
R
.
layout
.
activity_webview
);
AndroidBug5497Workaround
.
assistActivity
(
this
);
this
.
initView
();
this
.
initView
();
}
}
...
...
app/src/main/java/com/whaty/nafmii/activity/WebviewActivity.java
View file @
dfa7cc0
...
@@ -2,7 +2,6 @@ package com.whaty.nafmii.activity;
...
@@ -2,7 +2,6 @@ package com.whaty.nafmii.activity;
import
android.os.Bundle
;
import
android.os.Bundle
;
import
com.polysoft.nafmii.utils.AndroidBug5497Workaround
;
import
com.polysoft.nafmii.webview.X5Core
;
import
com.polysoft.nafmii.webview.X5Core
;
public
abstract
class
WebviewActivity
extends
BaseActivity
{
public
abstract
class
WebviewActivity
extends
BaseActivity
{
...
@@ -10,7 +9,6 @@ public abstract class WebviewActivity extends BaseActivity{
...
@@ -10,7 +9,6 @@ public abstract class WebviewActivity extends BaseActivity{
@Override
@Override
protected
void
onCreate
(
Bundle
savedInstanceState
)
{
protected
void
onCreate
(
Bundle
savedInstanceState
)
{
super
.
onCreate
(
savedInstanceState
);
super
.
onCreate
(
savedInstanceState
);
AndroidBug5497Workaround
.
assistActivity
(
this
);
X5Core
.
setInitCallback
(
flag
->
{
X5Core
.
setInitCallback
(
flag
->
{
});
});
}
}
...
...
Write
Preview
Markdown
is supported
Attach a file
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to post a comment