前人未踏の領域へ Androidアプリ開発編

Androidアプリ開発に関する調査メモ置き場。古い記事にはアプリ以外も含まれます。

2015-08-01から1ヶ月間の記事一覧

RecyclerViewのTouchイベント処理にはaddOnItemTouchListenerを使った方がいい。

setOnTouchListenerがあるのだけど、子ビューのイベント定義がしてあると発動しないか、遅れる。継承クラスを作ってInterceptTouchEventを拾う方法もあるが、この場合はACTION_UPが発生しない。 addOnItemTouchListenerならonInterceptTouchEventもonTouchEv…

Unable to bind views forをくらう

課題 ButterKnifeを使ってViewHolderのbindを行ったところ、RuntimeExceptionが発生した。 java.lang.RuntimeException: Unable to bind views for $パッケージ名 at butterknife.ButterKnife.bind(ButterKnife.java:322) at butterknife.ButterKnife.bind(B…

ScrollViewのスクロール位置の再現

注意 この記事は何らかの(失念)実装ミスをした際に発生した副作用に対する誤った解決策であり、 この処理が必要になるのは別なところに記述ミスがある可能性が高いと思う。 基本的に戻るボタンで戻った際にスクロール位置の再現が必要になることはないと思…

CoordinatorLayoutとViewPagerの共存

課題 あるViewの下にViewPagerがある。ViewPager内のリストをスクロールした際に、その上のViewもスクロールさせたい。 対策 CoordinatorLayoutとAppBarLayoutと合わせて使う。

SwipeRefreshLayoutソースコード読み

子View検出 子Viewがいるかどうかの判断。最初に見つかったものを対象にしている。 なので、SwipeRefreshLayoutの直接の子ビューは1つしか対象にできない、ということが分かる。 逆に、addViewやremoveViewは使えるのかも。 private void ensureTarget() { …

SwipeRefreshLayoutのsetRefreshingが表示されない

課題 SwipeRefreshLayoutを使っているが、初期表示のタイミングでsetRefreshing(true)としてもローディングアニメーションが表示されない。 対応 Message queueを使用して処理の実行タイミングを遅らせる。 private SwipeRefreshLayout mSwipeRefreshLayout;…

Dateformatのフォーマットキャラクタについて

Dateformatのフォーマットで利用できるキャラクタはバージョンにより異なる。 The format methods in this class implement a subset of Unicode UTS #35 patterns. The subset currently supported by this class includes the following format characters…

RecyclerViewにフッターを表示する

課題 RecyclerViewの追加読み込み時にフッターを表示したい。 対策 リストの最後尾にFooter用のオブジェクトを追加し、ViewTypeで判別して出し分け。追加データ取得時に削除する。エレガントな方法ではないけれど、とりあえず思いつく簡単な方法。 任意の型…

RecyclerViewにオートスクロール機能をつける

課題 RecyclerViewでもオートスクロールを実現したい 対策 RecyclerView#addOnScrollListenerとLinearLayoutManager#findLastVisibleItemPositionを組み合わせる。LinearLayoutManagerにはfindLastVisibleItemPositionという一部が見えている最後のアイテム…

ActionBarにロゴを表示する。

課題 AppCompatActivityに変更したところ、ActionBarに表示していたロゴが表示されなくなった。どうすればよいか。 対策 ActionBarに対してロゴ出力設定を有効化する。 ActionBar actionBar = ((AppCompatActivity) getActivity()).getSupportActionBar(); i…

ひらがなをカタカナに変換する。

課題 ひらがなで入力された文字列をカタカナに変換したい。 対応 1文字ごとにひらがなかどうかを判定し、文字コードをカタカナの位置までずらす。ひらがな判定に固定値でユニコード範囲を使用してもいいのだけど、 UnicodeBlockにHIRAGANAが定義されているの…