2011-05-17 5 views
4

単純な要件であるように見えるものは、かなり苦しいプロセスになっています。いくつかの(通常は複数行の)テキストを表示するには、AppWidgetが必要です。テキストはサイズが異なり、ビューよりも長い場合がありますので、その場合は省略記号を使用する必要があります。このビューでは、Android v3.1のサイズ変更可能なウィジェットもサポートされます。これは、ウィジェットが様々なサイズのコンテンツを正しく動的にサポートできることを再び必要とします。簡単だと思いますか?そして、もしそれが1行のTextViewだったら、それは...と思う。AppWidgetで楕円形の複数行のテキスト?

最初は1つのTextViewを作成し、テキストが収まらないときに省略記号に設定して、the bug動作しません - テキストは2行に渡ってのみラップします。

それから、私はan open source custom view that ellipsizes correctlyを複数の行でつかんで、うまく動作しますが、アクティビティでのみ動作します。私はAppWidgetがViewsがウィジェットに入ることを制限しているので、これも失敗することを忘れていました( "Classは許可されていません")。このカスタムビューを使用する方法はありません。

私が考えることができる最良の解決策は、ウィジェットに一連の単列TextViewを追加し、次の列に移動する前に各行に収まる長さを見つけるまで部分文字列を反復することです。テキストを手動でレンダリング/測定/レンダリングする。このアプローチには多くの短所があります。

複数行の省略記号付きのテキストをAppWidgetに追加するより良い方法はありますか?

答えて

2

正直言って、私はあなたが戻って、あなたがしたいことを考え直すべきだと思います。ウィジェットのサイズを変更できることは、実際には新しい種類のサイズ変更可能なコンテナを対象としています。ここでは、使用可能なデータの量がはっきりと異なり、ウィジェットがコンテナ内でどのように表示されるべきかを表現する明確な方法があります。それらを使用していない場合は、ユーザーが大幅にサイズを変更した場合に役立つ情報を提供するように調整するレイアウトを作成するのは非常に難しいことです。

新しいレイアウトやUIを使用していないアプリウィジェットでは、アプリウィジェットのレイアウトが異なるセルサイズでアプリウィジェットを利用できるという古いアプローチがおそらく考えられます。

+0

あなたが提案するアプローチはHoneycomb以降では問題ありませんが、アプリは他のデバイス上で動作します。私はここにバグがあることは明らかだと思う - いくつかのシナリオでは省略されているが、他のシナリオでは省略されている。おそらく最後の行が透明度を使ってバックグラウンドにフェードアウトすることになるでしょう - それは醜いですが、プラットフォームの制限を考えると分かりやすい解決策です。 –

+0

あなたは何を意味するのか分かりません。私が提案しているアプローチは、Android 3.1で導入されたサイズ変更可能なウィジェット機能を使用しないことです。 – hackbod

+0

ユーザーのサイズが変更されていません - ウィジェットはサイズが異なるテキストを表示します。ウィジェットは固定されたサイズであり、内容は様々です。単語を半分にするのではなく、弾力性を持って処理する方法がいくつかあります。フレームワーク実装が期待通りに動作しないのは非常に残念です。 –

0

私もこの問題に取り組んできました。私の解決策は、ウィジェットを固定サイズにし、垂直のLinearLayoutで10個のTextViewを使用することでした。実際のListViewを持たずにこれを行う方法は他にありません。

私はそれが今のところ十分だと思います。