ラベル ListView の投稿を表示しています。 すべての投稿を表示
ラベル ListView の投稿を表示しています。 すべての投稿を表示

2013年5月3日金曜日

[android][ListView]FooterViewのハマりどころ

ListViewのFooterの設定をした際に色々ハマったのでメモ。

addFooterView と removeFooterView に指定するインスタンス


addFooterView と removeFooterView に指定するインスタンスは同一のインスタンスである必要があるみたいです。
xml リソースから View を生成している場合、View を使うタイミングで findViewById で View を取得したりすると思いますが、この場合はインスタンス自体は別になってしまうので addFooterView で追加した Footer を removeFooterView で削除することはできません。
addFooter する View はメンバ変数などで保持していく必要があるみたいです。

Footerに指定するViewをXMLから生成する場合


Footerに指定するViewをXMLから生成する場合、root の View に layout_margin を設定してもうまく設定されないようです。 marginの設定をしたい場合は rootView の配下の View に対して設定する必要があります。つまり、

LinearLayout ー Button 

のような Layout を Footer に設定する場合、root の LinearLayoutに margin を設定してもうまく設定されません。
もし LinearLayout に margin を 設定した場合は、

LinearLayout ー LinearLayout  ー Button 

のような Layout にし、子の LinearLayout に margin を設定するとうまく設定されるみたいです。
# ただしこの方法だと Lint から怒られます。もっと良い方法が本当はあるのかも。

こういうのは Reference 見るとちゃんと書いてあったりするのかなー??

2011年11月30日水曜日

[Android][TextView]TextViewに取り消し線をいれる

なかなか情報が見つからなかったのでメモ。以下のスレッドを参考にしました。

bitwise operators - Remove a Paint Flag in Android - Stack Overflow
TextViewに取り消し線をいれるには、TextPaintクラスを使用します。TextViewのインスタンスからTextPaintオブジェクトを取得し、TextPaintオブジェクトに対し、Paint#STRIKE_THRU_TEXTのフラグを付けてやります。

[java]
TextPaint paint = textView.getPaint();
paint.setFlags(textView.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);
paint.setAntiAlias(true);
[/java]

3行目はアンチエイリアスをオンにしています。オンにしないとテキストがギザギザになって見栄えが悪くなってしまいます。

サンプルコードの全文は続きからどうぞ。

2011年11月27日日曜日

[Android][ListView][ViewPager]ViewPagerの中でListViewを使用する

スワイプによるページ切り替えを実装するのに、ViewPagerを使うことができます。今、自分が作っているアプリで、ViewPagerの中にListViewを配置する必要があったのですが、実装で結構ハマってしまったのでご紹介します。

ViewPagerの基本的な使い方は書きリンクを参照してください。

スワイプ動作でページ送りする(ViewPager) « Tech Booster


ListViewをカスタマイズする | Android Techfirm Lab


2011年10月30日日曜日

[android]ListViewのitemの文字色を動的に変更する

結構はまってしまったので、記録。

ListViewに表示されたitemをタップした時に文字色を変更するような処理を実装しようとした所、思いのほか時間がかかってしまいました。

作成したコードを掲載します。該当箇所を抜粋して記載しています。