Hartnäckige Ignorierung des Themes und Tabs und eine gute Adressleiste für WebView

  • Antworten:78
Rexxar
  • Forum-Beiträge: 2.563

09.11.2014, 16:55:52 via Website

Nun denn, man denkt, es wäre manchmal mit der Programmierung zu einfach...
Ich habe mir für meine Browser-App eigentlich keine Actionbar gedacht, aber Android sieht das anders.
Auf meinem Nexus 7² läuft Android 4.4, die App hat als Minimum 4.0.
Ein einfaches Holo Light würde mir ja schon fürs erste reichen, noch besser wäre es aber ganz ohne Actionbar. In styles.xml steht:

<!-- Base application theme. -->
<style name="AppTheme" parent="android:Theme.Holo.Light">
    <!-- Customize your theme here. -->
</style>

Aber es erscheint auf dem Tablet immer nur Holo Dark. In meiner Logcat fällt mir folgendes auf:
11-09 16:22:36.864 22609-22609/com.littleusefulapps.bigscreenbrowseralpha W/AwContents﹕ nativeOnDraw failed; clearing to background color.
11-09 16:22:37.004 22609-22609/com.littleusefulapps.bigscreenbrowseralpha W/AwContents﹕ nativeOnDraw failed; clearing to background color.
Ich habe es auch schon mit dem kleinen Button im Designer eingestellt und im Code this.setTheme(R.style.AppTheme);
Nichts hilft, immer nur Holo Dark :'( Am liebsten würde icch, wenn der User Kitkat hat, die Statusleiste durchsichtig machen, damit man die Webview dahinter sehen kann, aber noch nicht mal das simple Holo Dark klappt.
Achja, und eine Progressbar will trotz Code Befehl nicht verschwinden...
myprogressBar.setVisibility(myprogressBar.INVISIBLE); Der Code macht einfach nichts...
Und noch etwas: Da ich ja eine Browser-App mache, würde ich gerne Tabs wie in anderen Browsern haben. Benutzen möchte ich dazu eine sog. "Expandable List View". Kann man sowas irgendwie realisieren?
Zudem kennt man es ja, dass wenn man keine Adresse in die Adressleiste eingibt, dass der Browser dann Suchergebnisse öffnet. Wie kann ich die App erkennen lassen, ob es sich um eine Adresse oder ein Suchwort handelt? Am www könnte man das ja gut erkennen, aber manche Leute schreiben ja anstatt www.androidpit.de nur androidpit.de.
Fragen über Fragen, ich hoffe, dass ihr mir helfen könnt. :)

— geändert am 09.11.2014, 16:57:42

Liebe Grüße, Rexxar :)
Moto Z Play Stock
Nvidia Shield Tablet K1
http://www.androidpit.de/forum/634540/allgemeines-faq-fuer-neulinge

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

09.11.2014, 20:40:39 via App

Hallo,
1. Schau mal was in der Manifest als Theme steht. Zum Test kannst du da ja mal Hardcoded dein Holo.Light reinschreiben.

2.
Das kann man gut mit Regular expressions machen.
Also das ist sozusagen ein Format dass für alle urls passen muss vereinfacht www..
Die sternchen wären jetzt platzhalter.
oder .
Dann wäre noch zu prüfen ob die Zeichen hinter dem 2. Punkt auch wirklich eine Topleveldomain ist. (z.b .de;.com;.at)
Den rest;alles was nicht in das Format passt,wird dann zu google etc. als suchanfrage geschickt.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
pepperonas
  • Forum-Beiträge: 434

10.11.2014, 16:32:43 via Website

myprogressBar.setVisibility(View.INVISIBLE); 

Open Source

Antworten
Rexxar
  • Forum-Beiträge: 2.563

10.11.2014, 17:16:26 via App

Danke für eure Antworten, wie mach ich das mit den Topleveldomains? Bei Punkten den String splitten und dann das hintere mit den Top Level Domains vergleichen? Achja, ich will ja nicht mit jede Topleveldomain einzeln vergleichen. Gibts da ne bessere Möglichkeit?

Liebe Grüße, Rexxar :)
Moto Z Play Stock
Nvidia Shield Tablet K1
http://www.androidpit.de/forum/634540/allgemeines-faq-fuer-neulinge

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

10.11.2014, 17:31:15 via App

Eine gute lösung fällt mir da jetzt nicht ein.
Ich würde ein Array von Topleveldomains machen und dann in einer schleife alle duchgehen.
Oder so in der art:
if(array.contains(topleveldomain))...

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Rexxar
  • Forum-Beiträge: 2.563

10.11.2014, 20:24:50 via Website

Mit großer Freude verkünde ich euch:
if (URLUtil.isValidUrl(editTextadress.getText().toString())) {
mWebView.loadUrl(editTextadress.getText().toString());

                } else {
                    //was passieren soll wenn das keine URL ist, z.b. eine Fehlermeldung ausgeben oder bei einer Suchmaschine suchen...
                }

Funktioniert bestens und ohne Aufwand.
OT: Warum macht Markdown manches zu Code, manches nicht? (thinking)
Folgendes im Manifest android:theme="android:Theme.Holo.Light"> juckt mein Tablet nach wie vor nicht, immer Holo Dark :'(
Per Standart stand da android:theme="@style/App_Theme" wenn ich mich recht entsinne.
Könnt ihr mir noch etwas zur realisierung der Tabs sagen? (Nicht das Tabelement an sich, sondern wie das Browser eben so machen)

Liebe Grüße, Rexxar :)
Moto Z Play Stock
Nvidia Shield Tablet K1
http://www.androidpit.de/forum/634540/allgemeines-faq-fuer-neulinge

Antworten
pepperonas
  • Forum-Beiträge: 434

10.11.2014, 22:33:09 via Website

Ist ein bissel verbuggt. Normalerweise klappts aber wenn du eine Leerzeile extra dazu gibst. Manchmal tut es sich bei xml auch schwer..

Zum Theme: du musst mal schauen, wie das App_Theme weiter referenziert ist.. Halte mal STRG gedrückt und klicke auf die Variable, dann solltest du bei einem Eintrag landen der eine Bezeichnung "parent" mit sich führt. Das parent ist praktisch, das Theme von dem das darunterliegende abgeleitet ist. Beachte, dass man nicht alles Themen kann, bzw. manche Sachen via xml alleine nicht umzugestalten sind. Ausprobieren hilft. ;) Aber da man sich hier auch gerne mal was zerschießt, rate ich dir dringend bei solchen Vorhaben entweder ein VCS (zB Github, oder Bitbucket) zu benutzen, oder halt manuell hin und wieder eine Sicherung vom Projekt-Ordner anzulegen.

Oben genannter Eintrag könnte so aussehen:

 <style name="Light" parent="android:Theme.Holo.Light"></style>

und befindet sich im Normalfall in der styles.xml

Noch ein kleiner Tipp, das Android Asset Studio ist eine recht gute Anlaufstelle wann es um "Custom-Layout-Ressourcen" geht

Open Source

Antworten
Rexxar
  • Forum-Beiträge: 2.563

12.11.2014, 16:35:26 via App

Ich wollte ja garkein Custom Layout, ich möchte nur Holo Light ohne Action Bar. Den Style Befehl habe ich sogar schon in die Activity XML geschrieben, aber nach wie vor Holo Dark. Ich will die dumme Action Bar nicht, aber das Aktzeptiert Android wohl nicht. :'( Hat noch jemand eine Idee? Ich habe schon vieles probiert, aber nichts hilft.

Liebe Grüße, Rexxar :)
Moto Z Play Stock
Nvidia Shield Tablet K1
http://www.androidpit.de/forum/634540/allgemeines-faq-fuer-neulinge

Antworten
pepperonas
  • Forum-Beiträge: 434

12.11.2014, 16:42:19 via Website

Ach so :D okay, dann probiere es doch mal mit Holo.Dark.NoActionBar (so oder so ähnlich heißt die Einstellung)

Klicke in deinem Manifest hinter das derzeit ausgewählte Theme und drücke Strg+Leertaste, so solltest du eine Auswahl angezeigt bekommen was alles möglich ist... Einfach mal ein bisschen rumprobieren ...

Open Source

Antworten
Rexxar
  • Forum-Beiträge: 2.563

14.11.2014, 22:50:41 via App

Das habe ich alles versucht, aber es kommt immer dasselbe raus. Kann man die Action Bar per Code-Befehl loswerden? Achja, und wie soll ich das mit den Tabs machen? Soll die WebView die aktuelle URL in einer Listview speichern, und man schaltet dann per Listview zwischen den URLs um? (Die dann gecached werden)

Liebe Grüße, Rexxar :)
Moto Z Play Stock
Nvidia Shield Tablet K1
http://www.androidpit.de/forum/634540/allgemeines-faq-fuer-neulinge

Antworten
Ludy
  • Admin
  • Forum-Beiträge: 7.959

15.11.2014, 12:12:30 via Website

Was hast Du hier ausgewählt?
image

Edit: oder was hast du als
- compileSdkVersion
- buildToolsVersion

— geändert am 15.11.2014, 12:26:02

Gruß Ludy (App Entwickler)

Mein Beitrag hat dir geholfen? Lass doch ein "Danke" da.☺

☕ Buy Me A Coffee ☕

Lebensmittelwarnung-App

✨Meine Wunschliste✨

📲Telegram NextPit News📲

pepperonas

Antworten
Rexxar
  • Forum-Beiträge: 2.563

15.11.2014, 13:54:08 via App

Gelöst! Juhu! :) Wichtig ist, das man das Theme gleich als oberstes in OnCreate initialisiert this.setTheme(R.Style.AppTheme);
funktioniert nun bestens, man muss es nur direkt unter OnCreate einfügen. Wenn mir jetzt noch jemand was zu den Tabs sagen könnte...

Liebe Grüße, Rexxar :)
Moto Z Play Stock
Nvidia Shield Tablet K1
http://www.androidpit.de/forum/634540/allgemeines-faq-fuer-neulinge

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

15.11.2014, 13:58:00 via Website

Was willst du denn zu den Tabs wisstn?
Normalerweise sind Tabs dann oben angeordnet und du kannst dann dort duchnavigieren.
Je nach Code kannst du auch mehrer Seiten gleichzeitig in mehrern Tabs öffen ohne dass es da Probleme gibt.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

15.11.2014, 14:17:10 via Website

Gut das würde auch gehen, aber wie hast du dir das vorgestellt, wo soll die ListView plaziert werden?
und wie sollen die "Tabs" kategorisiert werden?
Hier mal nen tut für eine einfache exp. ListView: http://www.androidhive.info/2013/07/android-expandable-list-view-tutorial/

LG

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Rexxar
  • Forum-Beiträge: 2.563

15.11.2014, 18:06:52 via App

Oh, ich hatte den Begriff nicht richtig verstanden. Ich möchte ein aufklapp-Menü, so wie das drei Punkte Menü, der Button dafür soll dann in eine Leiste unten.

Liebe Grüße, Rexxar :)
Moto Z Play Stock
Nvidia Shield Tablet K1
http://www.androidpit.de/forum/634540/allgemeines-faq-fuer-neulinge

Antworten
pepperonas
  • Forum-Beiträge: 434

15.11.2014, 18:14:57 via Website

Hallo,
so wie ich deine Aussage verstehe willst du den NavigationDrawer nutzen?

Je nach Umfang deines Projektes ist es meiner Einschätzung nach eher ein Thema für Fortgeschrittene. Ich will nicht sagen, dass du es nicht hinbekommst, aber für Einsteiger gibt es garantiert geeignetere Übungen.

Open Source

Antworten
Rexxar
  • Forum-Beiträge: 2.563

15.11.2014, 18:48:03 via App

Nein, ich meine so ein Overflow Menü. So wie das Menü, wenn man den Menü Button drückt. So wie die drei Punkte rechts in der Ecke. Entschuldigung, ich kenne den Fachbegriff nicht.
EDIt: Sowas wie der Action Bar Spinner, nur das meine Leiste in der der soll unten ist und die Action Bar ausgeblendet. Der soll auch nicht so breit sein, nur ein Tab Icon.

— geändert am 15.11.2014, 18:55:05

Liebe Grüße, Rexxar :)
Moto Z Play Stock
Nvidia Shield Tablet K1
http://www.androidpit.de/forum/634540/allgemeines-faq-fuer-neulinge

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

15.11.2014, 19:35:39 via Website

Ohne ActionBar ist das glaub nicht möglich, denn die "Dinger" die du meinst heissen MenuItem(s) und ich kenne sie bisher nur in verwendung mit Actionbars etc.
Teste es mal aus, vlt. geht es auch ohne ich weiss es nicht: http://www.javatpoint.com/android-option-menu-example

Aber in Android gibt es elegantere Navigationsmöglichkeiten wie z.b. NavigationDrawer, Tabs per TabHost oder einem Spinner, das sind so die gängigsten, die auch bei usern gut ankommen und angenommen werden.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Rexxar
  • Forum-Beiträge: 2.563

15.11.2014, 21:27:28 via App

Ja, so einen Spinner möchte ich gerne benutzen. Darin soll man die Tabs anwählen können, aber jeder soll natürlich eine eigene History haben(wegen eine Seite zurück gehen)
Kann ich eine neue WebView erzeugen, die auch auf den Befehl mWebView hört oder kann eine WebView mehrere Historys haben?

Liebe Grüße, Rexxar :)
Moto Z Play Stock
Nvidia Shield Tablet K1
http://www.androidpit.de/forum/634540/allgemeines-faq-fuer-neulinge

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

15.11.2014, 21:31:30 via Website

Nein eine WebView nicht.
Das ganze Konzept müsstest du mit Fragments umsetzen, dann klappt das.
Du hast dann immer einene Instanzen der WebView und jede instanz kann ja dann eine eigene History und cookies etc. haben.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Rexxar
  • Forum-Beiträge: 2.563

17.11.2014, 06:20:48 via App

Könntest du mir da vielleicht ein Beispiel oder etwas in der Richtung geben? Gibt es ein gutes Tuturial?
Achja, noch etwas: Die Statusleiste ist transparemt, wenn man KitKat benutzt, und hinter der Leiste ist eine Progressbar. Dadunter ist die WebView.Ich möchte nun, dass wenn man die WebView nach unten scrollt, das dann die Progressbar verschwindet. Scrollt man wieder ganz nach oben, soll sie wieder erscheinen.Im Prinzip so, als wäre die Progressbar ein Teil der WebView, im Prinzip so ähnlich wie in der App "Javelin Browser", nur dass oben lediglich eine Progressbar verschwinden soll.

Liebe Grüße, Rexxar :)
Moto Z Play Stock
Nvidia Shield Tablet K1
http://www.androidpit.de/forum/634540/allgemeines-faq-fuer-neulinge

Antworten
Rexxar
  • Forum-Beiträge: 2.563

17.11.2014, 17:01:24 via App

Kann so ein Spinner auch ein Symbol haben? Ich möchte garnicht, dass er den Text von dem ausgewählten Item als Name hat, sondern nur, ein Tabsymbol und wenn man tippt, klappt der dann aus und man sucht sich seinen Tab aus. Das gleiche möchte ich auch für Lesezeichen machen.
Besonders wichtig ist mir jedoch eines:
Unter der transparenten Statusleiste ist eine Progressbar, und wenn man in der WebView nach unten scrollt, soll die Progressbar verschwinden, so daß man durch die Statusleiste nun die WebView sieht. Scrollt man nach oben, so soll diese nicht aufpoppen, sondern sich über der WebView befinden, und wenn die WebView oben angekommen ist erst wieder erscheinen. (Als wäre sie Teil der WebView und eben ganz oben)
Nur eine kleine Design Sache, aber für mich sehr wichtig. Ich habe das schon mit ändern der Höhe der Progressbar versucht, aber das ging nicht. Ein setEmbeddedTitleBar würde mein Problem anscheinend lösen, doch das geht ja nicht mehr. In eine Scrollview packen möchte ich meine schöne WebView auch nicht, denn laut Recherche würde das die WebView zu komischen benehmen Beim zoomen und horizontalem scrollen verleiten.

Liebe Grüße, Rexxar :)
Moto Z Play Stock
Nvidia Shield Tablet K1
http://www.androidpit.de/forum/634540/allgemeines-faq-fuer-neulinge

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

17.11.2014, 17:50:26 via Website

Ja der Spinner kann ein Icon haben: http://android-er.blogspot.de/2013/06/custom-arrayadapter-for-spinner-with.html

Und das mit der Progressbar
es gibt dafür 2 Wege:
1. ProgrssBar wird ausgeblendet sobald die Seite geladen ist
2. ProgressBar wird ausgeblendet wann er user Scrollt, ganz egal ob der LadeProzess schon fertig ist oder nicht. (http://stackoverflow.com/questions/14752523/how-to-make-a-scroll-listener-for-webview-in-android)

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Rexxar
  • Forum-Beiträge: 2.563

17.11.2014, 18:50:44 via App

Vielen Dank für Dein Fachwissen und deine Hilfe Pascal, wie genau blende ich die Progressbar dann aus? Bei GONE, was genau der passende Befehl wäre, kann man sie irgendwie nicht mehr Visible machen. Zumindest war das meine Erfahrung beim rumprobieren vorher. Oder steht das auch im Stackoverflow Link und ich habe es übersehen?

Liebe Grüße, Rexxar :)
Moto Z Play Stock
Nvidia Shield Tablet K1
http://www.androidpit.de/forum/634540/allgemeines-faq-fuer-neulinge

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

17.11.2014, 18:57:47 via App

Also bei Vews ist das überall gleich:
View.setVisibility(View.GONE)
oder das Gegenteil:
View.setVisibility(View.Visible)

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Rexxar
  • Forum-Beiträge: 2.563

19.11.2014, 16:14:34 via App

Erstmal Danke für deine ganze Hilfe, ich komme Dank der Schule leider nicht jeden Tag zum programmieren. Ich habe nun dieses OnScroll aus deinem Link in meinen Code eingefügt (/erstmal ein dickes Danke an Google dafür, dass es so einfach und schnell geht/irony). Nun denn, man muss die Observable WebView auch in die XML einfügen.
Ersetzt habe ich WebView durch com.littleusefulapps.bigscreenbrowseralpha.MainActivity.ObservableWebView, und nun force closed die App sofort. AS sagt "the following classes cannot be instantiated:com.littleusefulapps.bigscreenbrowseralpha.MainActivity.ObservableWebView" und zusätzlich noch "java.lang.NoSuchMethodException:com.littleusefulapps.bigscreenbrowseralpha.MainActivity$ObservableWebView(android.content.Context, android.util.AttributeSet)
Ihn stören auch noch Sachen in Class.java und LayoutInflater.java, obwohl ich da nie was dran gemacht habe.

Liebe Grüße, Rexxar :)
Moto Z Play Stock
Nvidia Shield Tablet K1
http://www.androidpit.de/forum/634540/allgemeines-faq-fuer-neulinge

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

19.11.2014, 17:04:47 via App

Poste mal bitte die Veränderten Zeilen.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Rexxar
  • Forum-Beiträge: 2.563

19.11.2014, 20:58:19 via Website

android:layout_width="fill_parent"
android:layout_height="0dp"
android:id="@+id/mWebView"
android:longClickable="true"
android:layout_weight="1.00" />
Das im XML. Das zeigt mir AS über dem Gerät im Designer an:
The following classes could not be instantiated:
- com.littleusefulapps.bigscreenbrowseralpha.MainActivity.ObservableWebView (Open Class, Show Exception)
Tip: Use View.isInEditMode() in your custom views to skip code or show sample data when shown in the IDE Exception Details java.lang.NoSuchMethodException: com.littleusefulapps.bigscreenbrowseralpha.MainActivity$ObservableWebView.(android.content.Context, android.util.AttributeSet)   at java.lang.Class.getConstructor0(Class.java:3074)   at java.lang.Class.getConstructor(Class.java:1817)   at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:806)   at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:64)   at android.view.LayoutInflater.rInflate(LayoutInflater.java:782)   at android.view.LayoutInflater.inflate(LayoutInflater.java:504)   at android.view.LayoutInflater.inflate(LayoutInflater.java:385) Copy stack to clipboard The ObservableWebView custom view has been edited more recently than the last build: Build the project. The MainActivity custom view has been edited more recently than the last build: Build the project.
In meinem Code befindet sich das, was in dem von dir verlinkten Stackoverflow Thread gepostet wurde. Ich hoffe, du weisst Rat. :)

Liebe Grüße, Rexxar :)
Moto Z Play Stock
Nvidia Shield Tablet K1
http://www.androidpit.de/forum/634540/allgemeines-faq-fuer-neulinge

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

19.11.2014, 21:21:01 via App

Mach den teil mal wieser rückgängig. Das war ja nur die verlinkte Frage aber nicht die Antwort darauf ;) Also die Antwort ist eigentlich das was ich dir zeigen wollte. Das problem ist das ist etwas kompliziert für dich ist oder?

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Rexxar
  • Forum-Beiträge: 2.563

19.11.2014, 21:46:03 via App

Ja, ich bin noch Newbie in der Android Programmierung. Ich meinte schon die Antwort, die habe ich in den Code entsprechend eingefügt. Dieses kleine Detail muss doch machbar sein :/ Ich verstehe nicht, was Android Studio daran nicht gefällt. Leider wurde auf Stackoverflow nur gesagt, dass das XML angepasst werden muss. Aber das habe ich doch getan?!

Liebe Grüße, Rexxar :)
Moto Z Play Stock
Nvidia Shield Tablet K1
http://www.androidpit.de/forum/634540/allgemeines-faq-fuer-neulinge

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

19.11.2014, 23:35:12 via App

Du hast die XML so verändert dass du als View deine View aus dem Code nimmst.
Dafür musst du aber im Code von Stackoverflow noch dein Package und deine Klassennamen etx. anpassen.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Rexxar
  • Forum-Beiträge: 2.563

20.11.2014, 17:00:00 via Website

Was genau soll ich anpassen?
Hier mal die kompletten Fehlermeldungen:
java.lang.NoSuchMethodException: com.littleusefulapps.bigscreenbrowseralpha.MainActivity$ObservableWebView.(android.content.Context, android.util.AttributeSet)
at java.lang.Class.getConstructor0(Class.java:3074)
at java.lang.Class.getConstructor(Class.java:1817)
at org.jetbrains.android.uipreview.ViewLoader.createNewInstance(ViewLoader.java:314)
at org.jetbrains.android.uipreview.ViewLoader.loadView(ViewLoader.java:99)
at com.android.tools.idea.rendering.LayoutlibCallback.loadView(LayoutlibCallback.java:172)
at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:207)
at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:132)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:806)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:64)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:782)
at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
at android.view.LayoutInflater.inflate(LayoutInflater.java:385)
at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:401)
at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:329)
at com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:333)
at com.android.tools.idea.rendering.RenderService$5.compute(RenderService.java:674)
at com.android.tools.idea.rendering.RenderService$5.compute(RenderService.java:663)
at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:932)
at com.android.tools.idea.rendering.RenderService.createRenderSession(RenderService.java:663)
at com.android.tools.idea.rendering.RenderService.render(RenderService.java:790)
at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager.doRender(AndroidLayoutPreviewToolWindowManager.java:611)
at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager.access$1900(AndroidLayoutPreviewToolWindowManager.java:81)
at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager$7$1.run(AndroidLayoutPreviewToolWindowManager.java:553)
at com.intellij.openapi.progress.impl.ProgressManagerImpl$2.run(ProgressManagerImpl.java:178)
at com.intellij.openapi.progress.ProgressManager.executeProcessUnderProgress(ProgressManager.java:209)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:212)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.runProcess(ProgressManagerImpl.java:171)
at org.jetbrains.android.uipreview.AndroidLayoutPreviewToolWindowManager$7.run(AndroidLayoutPreviewToolWindowManager.java:548)
at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:320)
at com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:310)
at com.intellij.util.ui.update.MergingUpdateQueue$2.run(MergingUpdateQueue.java:254)
at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:269)
at com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:227)
at com.intellij.util.ui.update.MergingUpdateQueue.run(MergingUpdateQueue.java:217)
at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:238)
at com.intellij.util.Alarm$Request$1.run(Alarm.java:327)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Allein schon in den import geschichten der genannten Scripts kennt AS lauter Sachen nicht... Häh?
Wie müsste das ganze denn im XML gemacht werden?
android:layout_width="fill_parent"
android:layout_height="0dp"
android:id="@+id/mWebView"
android:longClickable="true"
android:layout_weight="1.00" />
So habe ichs im Moment.

Liebe Grüße, Rexxar :)
Moto Z Play Stock
Nvidia Shield Tablet K1
http://www.androidpit.de/forum/634540/allgemeines-faq-fuer-neulinge

Antworten
Rexxar
  • Forum-Beiträge: 2.563

20.11.2014, 17:30:38 via Website

Lieber Pascal, ich muss agen, dass es gut ist, das Android Studio mir angeboten hat die Class zu erstellen. Das habe ich dann mal gemacht, so entstand unter MainActivity.java noch eine ObservableWebView.java und da packte ich dann den Code von Stackoverflow rein, einiges wurde rot unterkringelt, da habe ich immer Alt+Enter gedrückt und es wurde dann importiert. Nun funktioniert alles bestens, im XML steht jetzt:
com.littleusefulapps.bigscreenbrowseralpha.ObservableWebView
android:layout_width="fill_parent"
android:layout_height="0dp"
android:id="@+id/mWebView"
android:longClickable="true"
android:layout_weight="1.00"
Und das geht nun auch bestens. Dann können die Spinner ja kommen :D
Kurze Frage noch: Ich schalte ab Scroll Y kleiner oder gleich 25 die Progressbar unter der Statusbar auf Visible. Über 25 auf Gone. Nun kommt es dazwischen zu einem unschönen Zittereffekt, weil die Leiste weggeschaltet wird und sich das Layout verschiebt. Wenn ich sei bei ScrollY >50 wegschalte, wird dieses Zittern schwächer, ist aber noch vorhanden. Wie kann ich das verhindern? Das sieht für den Benutzer unschön aus.
Nachtrag: Mit android:animateLayoutChanges = true im großen Layout der App sieht es doch schon viel besser aus :)

— geändert am 20.11.2014, 17:48:44

Liebe Grüße, Rexxar :)
Moto Z Play Stock
Nvidia Shield Tablet K1
http://www.androidpit.de/forum/634540/allgemeines-faq-fuer-neulinge

Antworten
Rexxar
  • Forum-Beiträge: 2.563

13.12.2014, 15:55:36 via App

So, nach einer Pause (auch zeitlich bedingt durch die Schule usw.) habe ich mich mal wieder dran gesetzt. Zuerst wollte ich das Symbol austauschen, doch obwohl ich es fachmännisch importiert und ersetzt habe, erscheint auf dem Tablet immer nur der Standart Androide :/
Achja, und ich habe nun das Popup-Menu gefunden. Das wäre doch am besten für meine Zwecke und einfacher als da mit nem Spinner zu basteln, was meint ihr?

Liebe Grüße, Rexxar :)
Moto Z Play Stock
Nvidia Shield Tablet K1
http://www.androidpit.de/forum/634540/allgemeines-faq-fuer-neulinge

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

13.12.2014, 16:05:17 via Website

Wie hast du denn das symbol ausgetauchst?
Normalerweise reicht es in den Drawable Ordnern die Date zu ersetzen. Wichtig ist der gleiche Dateiname.
Und was meinst du mit Popup menü?
Ich würde jedoch imernocht zu Tabs tendieren, da das im moment die beste Browsernavigation ist.
(Alternative wäre der Navigation Drawer)

LG Pascal

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Rexxar
  • Forum-Beiträge: 2.563

13.12.2014, 16:26:15 via App

Ich habe ein 512 x 512 Symbol erstellt, auf irgendeiner Website (Android Asset Studio?) in eine zip umgewandelt, die entpackt, dann in Android Studio Rechtsklick auf Drawable, New>Image Asset File (oder sowas ähnliches), als Pfad dann die Xxhdpi aus dem entpackten zip Ordner genommen, As schneidet die sich dann passend zurecht. Dann hab ich es als ic_launcher wie von AS vorgeschalgen gespeichert, dann hat As den Standart Androiden überschrieben und fertig. Aber auf dem Tablet keine Änderung.

Die Tabs möchte ich nicht nutzen, meine App soll möglichst viel von der Website anzeigen. Ein dezenter Button soll ein Menü ausklappen, da sollen dann die Sachen wie neu laden, Vorwärts usw. drin sein. Das gleiche dann nochmal als Menü für die "Registerkarten".
Das ist Das Popup Menu: http://www.javatpoint.com/android-popup-menu-example

Liebe Grüße, Rexxar :)
Moto Z Play Stock
Nvidia Shield Tablet K1
http://www.androidpit.de/forum/634540/allgemeines-faq-fuer-neulinge

Antworten
Rexxar
  • Forum-Beiträge: 2.563

14.12.2014, 09:39:26 via App

Ich habe die App nun mal dekompiliert und reingeguckt.
Geöffnet habe ich die AndroidManifest.xml mit dem XML Editor Axel.
Und nun ist mir folgendes aufgefallen:
Uploaded with Directupload Image Sharer
Warum ist das ausgegraut? Denn die Icons ansich befinden sich in den passenden Ordnern.

Liebe Grüße, Rexxar :)
Moto Z Play Stock
Nvidia Shield Tablet K1
http://www.androidpit.de/forum/634540/allgemeines-faq-fuer-neulinge

Antworten
pepperonas
  • Forum-Beiträge: 434

14.12.2014, 10:56:21 via Website

Rexxar

Das Icon ist im Ordner schon ersetzt... Und trotzdem ist noch das alte zu sehen. Ich verstehe das nicht :(

Da gibt's nicht viel zu verstehen. Einfach auf "Build" > Clean Project und ggf nochmal Rebuild Project.
Wenn das nichts hilft mal die R Klasse löschen und Projekt dann nochmal neu bauen.
Wenn das nichts hilft (eher unwahrscheinlich), dann kannst du bei Android Studio unter "File" > "Invalidate Caches and Restart" klicken.

Warum es ausgegraut ist... Weils in der IDE so eingestellt ist :D wenn dich das stört kannst du unter File > Settings > Editor > Colors & Fonts die Farben ändern.

Open Source

Antworten
Rexxar
  • Forum-Beiträge: 2.563

14.12.2014, 11:42:54 via Website

Hallelulja!
Ich habe es geschafft!
Die Ausgrauung war tatsächlich ein Hinweis! Das > auf dem Bild musste hinter die Zeilen mit dem Icon gesetzt werden, keine Ahnung warum AS das nicht standartmäßig gemacht hat.
Aus:

<application>
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme"
    android:allowBackup="true"

musste ich

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme"
    android:allowBackup="true"
    >

machen :D Aber danke für eure Hilfe :)

— geändert am 14.12.2014, 11:44:21

Liebe Grüße, Rexxar :)
Moto Z Play Stock
Nvidia Shield Tablet K1
http://www.androidpit.de/forum/634540/allgemeines-faq-fuer-neulinge

Antworten
Rexxar
  • Forum-Beiträge: 2.563

21.12.2014, 18:55:31 via App

Nun, das mit dem Pop Up Menu habe ich mittlerweile geschafft, war nicht schwer und funktioniert sehr gut :).
Kann mir jemand das mit diesen WebViewFragment erklären?
Damit soll ich ja meine Tabs umsetzen. (Welchen Tab man öffnen will, wird man dann über ein zweites Pop Up Menü auswählen)
Ich bin mir nicht sicher, wie ich meine Webview mit einem Fragment verknüpfen soll, und wie ich dass mit den Tabs dann mache.
Kann mir da jemand helfen?

Liebe Grüße, Rexxar :)
Moto Z Play Stock
Nvidia Shield Tablet K1
http://www.androidpit.de/forum/634540/allgemeines-faq-fuer-neulinge

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

21.12.2014, 19:45:24 via Website

Ich dachte du wolltest keine Tabs oder implizierst du damit deine alternative zu einem TabHost?
Ich habe jetzt noch nie etwas von einem WebView Fragment gehört, gibt es das?
Ich hätte da ein normales Fragment genommen aufdem eine WebView drauf ist -> WebViewFragment (laughing)
Tut: http://www.survivingwithandroid.com/2013/03/android-fragment-tutorial-webview-example.html
Vielleicht hilft dir das ja weiter.

Sonst grundlegende Logik:
1. auswählen des "Tabs" in deiner PopupBox
2. auf den click reagieren und entsprechendes Fragment darstellen [am besten per FragmentManager austauchen, wie man das so macht dass die Webseite aktiv gehalten wird, weiss ich nicht, dass solltest du mal nachschauen].
3.ggf. einen PopupMenüpukt für neue Tabs

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten