kuluna.class
Qiita

年末年始アプリ開発その3

Categories: Android

年末年始?知らない子ですね。

なかなか時間がとれず開発が停滞していたのですが、1月下旬あたりから少し余裕が取れたので、少しず~つですが進めていました。

CoodinatorLayoutを使ってスクロール時にActionBarを消した処理を入れてみました。
2列に表示されているリストはRecyclerViewのLayoutManagerを StaggeredGridLayoutManager をすることで、高さが可変なGridLayoutを表示することができます。

recyclerView.layoutManager = StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL)

たったこれだけであのレイアウトになるんですね。すごい。

こちらは設定でJavaScriptを実行しないようにできるモードを追加してみたものです。明らかにロードの時間が違いますね。
AndroidのWebViewはデフォルトでJavaScriptが無効になっています。

webView.settings.run { this.javaScriptEnabled = true }

これでJavaScriptが有効になるのですが、あえて無効のままにするオプションを追加してみました。
最近のWebはJavaScriptにあまり頼らなくてもリッチな表示ができているので、ある程度のサイトはこれで読み込み速度を大幅に向上させることができます。一応メニューからブラウザで開く機能もつけたので、より詳細にページを見たい場合はブラウザで開くことができます。

このあたりから画面もFragmentで分割するようにしました。ダークテーマですがどうもRecyclerViewで表示するViewにはデフォルトでアプリのテーマが設定されないようなので、XMLにthemeを追記することでダークテーマになりました。

<android.support.v7.widget.CardView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="4dp"
        android:layout_marginEnd="4dp"
        android:layout_marginStart="4dp"
        android:layout_marginTop="4dp"
        android:foreground="?android:attr/selectableItemBackground"
        android:theme="@style/AppTheme">
</android.support.v7.widget.CardView>

あんまり深く考えずに、テーマが適用されてない箇所があったらとりあえずこのテーマでヨロ!って感じで設定しておけばいいんだと思います。

ここは普通にFragmentManagerのbackstackを・・・とやろうと思ったのですが、そうするとFragmentを毎回生成することになるので単純にブコメ表示するFragmentをshow/hideするだけにしています。そうすることで表示を切り替えても読み込みが発生せずサクサクと表示されるようになりました。

ここまでで9割ほど欲しい機能が実装終わった感じなので、あとは設定画面を少し追加すればストアに配布してみようかと思っています。