ホームページ >Java >&#&チュートリアル >Android のウィジェットに改行レイアウトを実装するにはどうすればよいですか?

Android のウィジェットに改行レイアウトを実装するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-07 02:01:03862ブラウズ

How to Implement Line-Breaking Layout for Widgets in Android?

Android 用の改行ウィジェット レイアウト

問題:

Android アプリケーションでは、それぞれが単語を表すウィジェットに分割できるデータがある場合があります。このデータを表示するには、テキスト段落と同様にウィジェットを行に配置し、必要に応じて次の行に折り返せるようにします。

提案された解決策:

テキストの改行動作を模倣する PredicateLayout として知られるカスタム レイアウトを実装します。このレイアウトは、子ビューを行に配置し、行の終わりに達したときに折り返すことで子ビューを管理します。

コード サンプル:

public class PredicateLayout extends ViewGroup {
    private int line_height;

    // ...

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        // ...
        for (int i = 0; i < count; i++) {
            // ...
            final LayoutParams lp = (LayoutParams) child.getLayoutParams();
            // ...
            line_height = Math.max(line_height, child.getMeasuredHeight() + lp.height);
            // ...
        }
        this.line_height = line_height;
        // ...
    }

    // ...
}

使用法:

アクティビティ内で、このカスタム レイアウトを次のように使用できます。次のとおりです:

public class MyActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        // ...
        PredicateLayout l = new PredicateLayout(this);
        // ...
        setContentView(l);
    }
}

結果:

PredicateLayout はウィジェットを効果的に行に配置し、幅の制約を超えた場合は次の行に折り返します。これにより、折り返されたテキストのような段落としてデータを表示できます。

以上がAndroid のウィジェットに改行レイアウトを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。