From c22fccc96e867cc63f03969ca6b576e610a118b6 Mon Sep 17 00:00:00 2001 From: Spaso1 Date: Tue, 29 Jul 2025 14:54:53 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AD=98=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../findmaimaiultra/ui/MainActivity.java | 3 +- .../ui/earth/EarthFragment.java | 52 +++++++++++++++++++ .../main/res/layout/fragment_slideshow.xml | 8 +++ app/src/main/res/layout/fragment_webview.xml | 11 ++++ .../main/res/menu/activity_main_drawer.xml | 3 ++ .../main/res/navigation/mobile_navigation.xml | 15 ++++-- app/src/main/res/values/strings.xml | 1 + 7 files changed, 87 insertions(+), 6 deletions(-) create mode 100644 app/src/main/java/org/astral/findmaimaiultra/ui/earth/EarthFragment.java create mode 100644 app/src/main/res/layout/fragment_webview.xml diff --git a/app/src/main/java/org/astral/findmaimaiultra/ui/MainActivity.java b/app/src/main/java/org/astral/findmaimaiultra/ui/MainActivity.java index a4ed159..099ce8b 100644 --- a/app/src/main/java/org/astral/findmaimaiultra/ui/MainActivity.java +++ b/app/src/main/java/org/astral/findmaimaiultra/ui/MainActivity.java @@ -108,7 +108,7 @@ public class MainActivity extends AppCompatActivity implements ImagePickerListen // Passing each menu ID as a set of Ids because each // menu should be considered as top level destinations. mAppBarConfiguration = new AppBarConfiguration.Builder( - R.id.nav_home, R.id.nav_gallery, R.id.nav_music,R.id.nav_pixiv, R.id.nav_slideshow) + R.id.nav_home, R.id.nav_gallery, R.id.nav_music,R.id.nav_pixiv, R.id.nav_slideshow,R.id.nav_earth) .setOpenableLayout(drawer) .build(); NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment_content_main); @@ -257,6 +257,7 @@ public class MainActivity extends AppCompatActivity implements ImagePickerListen return true; }); + return false; } private LatLng selectedLatLng = null; diff --git a/app/src/main/java/org/astral/findmaimaiultra/ui/earth/EarthFragment.java b/app/src/main/java/org/astral/findmaimaiultra/ui/earth/EarthFragment.java new file mode 100644 index 0000000..f4b8d67 --- /dev/null +++ b/app/src/main/java/org/astral/findmaimaiultra/ui/earth/EarthFragment.java @@ -0,0 +1,52 @@ +package org.astral.findmaimaiultra.ui.earth; + +import android.content.Context; +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.webkit.WebSettings; +import android.webkit.WebView; +import android.webkit.WebViewClient; +import androidx.annotation.NonNull; +import androidx.fragment.app.Fragment; +import androidx.lifecycle.ViewModelProvider; +import org.astral.findmaimaiultra.databinding.FragmentWebviewBinding; + +public class EarthFragment extends Fragment { + private FragmentWebviewBinding binding; + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + // 获取 SharedPreferences 实例 + + } + + @Override + public View onCreateView(@NonNull LayoutInflater inflater, + ViewGroup container, Bundle savedInstanceState) { + binding = FragmentWebviewBinding.inflate(inflater, container, false); + View root = binding.getRoot(); + + WebView webView = binding.webView; + WebSettings webSettings = webView.getSettings(); + webSettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); + + webSettings.setDatabaseEnabled(true); + String databasePath = requireContext().getApplicationContext().getDir("database", Context.MODE_PRIVATE).getPath(); + webSettings.setDatabasePath(databasePath); + webSettings.setDomStorageEnabled(true); + webSettings.setJavaScriptEnabled(true); + + webView.setWebViewClient(new WebViewClient() { + @Override + public void onPageFinished(WebView view, String url) { + // 页面加载完成后执行某些操作 + super.onPageFinished(view, url); + } + }); + webView.loadUrl("https://www.godserver.cn/earth?lo=116.404&la=39.915"); + + return root; + } +} diff --git a/app/src/main/res/layout/fragment_slideshow.xml b/app/src/main/res/layout/fragment_slideshow.xml index 845529b..ad7dea3 100644 --- a/app/src/main/res/layout/fragment_slideshow.xml +++ b/app/src/main/res/layout/fragment_slideshow.xml @@ -57,6 +57,7 @@ diff --git a/app/src/main/res/layout/fragment_webview.xml b/app/src/main/res/layout/fragment_webview.xml new file mode 100644 index 0000000..b055533 --- /dev/null +++ b/app/src/main/res/layout/fragment_webview.xml @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/menu/activity_main_drawer.xml b/app/src/main/res/menu/activity_main_drawer.xml index c97c6ae..c58cc84 100644 --- a/app/src/main/res/menu/activity_main_drawer.xml +++ b/app/src/main/res/menu/activity_main_drawer.xml @@ -19,5 +19,8 @@ + \ No newline at end of file diff --git a/app/src/main/res/navigation/mobile_navigation.xml b/app/src/main/res/navigation/mobile_navigation.xml index 5aae655..1675f11 100644 --- a/app/src/main/res/navigation/mobile_navigation.xml +++ b/app/src/main/res/navigation/mobile_navigation.xml @@ -21,14 +21,19 @@ android:name="org.astral.findmaimaiultra.ui.music.MusicFragment" android:label="@string/menu_music" tools:layout="@layout/fragment_music"/> - + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index f926eb6..f9098e1 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -40,6 +40,7 @@ Reisa 设置 Engine + 全球地图 \ No newline at end of file