質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Q&A

解決済

1回答

1801閲覧

アンドロイドアプリ開発でのタイトルバー表示について。特定サイトの時にタイトルバーを隠して、それ以外のサイトではタイトルバーを表示する(もしくはこの逆)という設定をしたい。

gugupoo

総合スコア31

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

0グッド

0クリップ

投稿2020/05/19 01:07

編集2020/05/19 02:14

アンドロイドアプリプログラミングを最近開始しまして、
表題の通りに特定サイトの時にタイトルバーを隠して、
それ以外のサイトでタイトルバーを表示させるアプリ、
表示させるサイトは自分のPHPで作製したサイトでそういったブラウザ作成を目指しています。

現在までに出来たことはWebViewを用いてのサイト表示で、
・サイト表示
・リンクタップ時、サイト内、サイト外どちらも自分のアプリで開く事
・javascriptの有効や無効
・戻るボタン
などをやりました。
アプリでの自サイト他サイト表示の著作権については勉強中です。
(このあたりを主に参考にさせて頂きました。
https://blog.codecamp.jp/programming-android-app-webpage
https://akira-watson.com/android/webview.html

そしてタイトルバーを非表示にする事も行いました。
↓を参考にしました。
https://qiita.com/hoshiume11/items/f4ea6467d08926cae9b7

しかし自分が行いたい事ですが、
自作したサイト、今回表示させたいPHPサイトは、タイトルバーはいらないサイトで、
あっても邪魔なサイトになります。
そして、リンクタップで私のサイト内から外部に遷移したサイトは、
戻る進むボタンか、もしくは深い階層まで行っても戻ってこれる
TOPボタンのようなものも欲しいと思っています。

今改めて見ると、project作成時にNo activityという、バーのないものもあったので、
こちらを利用するにしても、
Empty Activityで、
このドメインではタイトルバーを表示しない & それ以外では表示する
というものを、どうにかしてやりたいのですが、
ご指示頂けたら有難いです。宜しくお願い致します。

==================
以下追記点です。おそらくこれでいいかと思う方法を探り中ですが、
タイトルバーの動的な表示・非表示の方法で、

Main.Activity.javaに

java

1import androidx.appcompat.app.ActionBar; 2 3...4 5ActionBar myAction = getSupportActionBar(); 6 myAction.hide();

としてやることでタイトルバーは消えました。

おそらく、静的に非表示するということは
styles.xmlファイルなどを

java

1<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">

↓上を下のようにしてやると

java

1<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">

消えましたが、これは静的な変更と思います。

あとは条件をなんらか操作できればと思いますが・・
引き続き調査をしていきますので宜しくご指導いただければありがたいです。
宜しくお願い致します・・

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dodox86

2020/05/19 01:34 編集

WebViewが関係していてどのような画面にされているのか分かりませんが、動的に表示/非表示にするということで「Android タイトルバー 動的」などと検索して出てくる情報で対応できないでしょうか。「アクションバー」でも良いかもしれません。また、プログラミング言語として使っているのがJavaなのかKotlinなのか質問文中に示した方が良いと思います。更にできれば、最低限のコードを質問文中に提示しましょう。
gugupoo

2020/05/19 01:42

申し訳ありませんでした;了解致しました。 現在はjavaで作製に挑ませて頂いております。 Android タイトルバー 動的 あたりで少し自分も検索を進めます!! 有難うございます!!
dodox86

2020/05/19 07:50

質問文中の追記を読んで: > あとは条件をなんらか操作できればと思いますが・・ 質問者さんがWebView上でどのようにリンクをタップしているか分かりませんが、そのリンクタップ操作をWebViewClientクラスでフック(hook)し、shouldOverrideUrlLoadingメソッドやonPageFinishedメソッドでURLを判定して処理するようなかたちになろうかと思います。「Android WebView URL フック」などで検索してみてください。それで恐らく要望の機能が実現できるのではと思います。
dodox86

2020/05/19 08:04

もし上記コメントのWebViewClientクラスを使う方法で要望の動きができたら、修正内容など解決に至った方法を自己回答で示して質問を閉じてください。 WebViewClientを使う方法では問題があり、できない可能性もあります。(<私自身は試していないので分かりません) その場合は最低限のソースコードを質問文中に追記し、適切な回答をいただけるようにしましょう。
gugupoo

2020/05/20 01:12

WebViewClientクラスを使用してとりあえず、動きたい動きを達成できました!有難うございました!
guest

回答1

0

自己解決

dodox86さんよりお教え頂いた、WebViewClientクラスを使う方法を検索して以下のように達成致しました!
開くサイトは私個人のPHPで作成したサイトのTOPページですが、ここではyahoo.co.jpとさせて頂きました。

java

1public class MainActivity extends AppCompatActivity { 2 3 WebView myWebView; 4 5 @Override 6 protected void onCreate(Bundle savedInstanceState) { 7 super.onCreate(savedInstanceState); 8 setContentView(R.layout.web); 9 10 11 myWebView = (WebView) findViewById(R.id.webview); 12 13 14 15 myWebView.loadUrl("http://yahoo.co.jp"); 16 17 myWebView.setWebViewClient(new MyWebViewClient()); 18 ActionBar myAction = getSupportActionBar(); 19 myAction.hide(); ///////////////起動して最初http://yahoo.co.jpが出た時にバーは隠しておく 20 21 } 22 23 /////////////////ここが今回のサイト内移動、サイト外移動時のバーの出現判定箇所 24 private class MyWebViewClient extends WebViewClient { 25 @Override 26 public boolean shouldOverrideUrlLoading(WebView view, String url) { 27 if ("yahoo.co.jp".equals(Uri.parse(url).getHost())) { 28 29 ActionBar myAction = getSupportActionBar(); 30 myAction.hide(); 31 return false; //////yahoo.co.jp内のリンク移動は隠しておく 32 } 33 34 ActionBar myAction = getSupportActionBar(); 35 myAction.show(); /////////外部では出す 36 return false; //////////ここがreturn trueだと、リンクをタップしてもずっと無反応 37 } 38 } 39 40} 41

となりました。この次にやりたい事はさらに見えてきましたが、
指定したサイト内でバーを隠して、サイト外移動時はバーを出すという設定が出来ました。
次の課題点に引き続き取り組みます!!

投稿2020/05/20 01:13

gugupoo

総合スコア31

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dodox86

2020/05/20 01:27

おめでとうございます。お役に立てたようで良かったです。引き続き完成に向けてがんばってください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問