2012-04-17 9 views
0

私がまとめようとしているプロジェクトの要件の1つは、NavbarのようなiOSのUI機能を再現することです。2つの可変幅ビューを両側に揃えた親の中央テキスト

(私は、これはAndroidの設計の観点から悪いですが、私はそれについてできることは何もないことを認識しています。)私はhereを達成しようとしているのか分からない人のために

されます例。要点は、左右に2つの可変幅ボタンが並んでいる可能性がある一方で、常に中央に配置されたTextViewバーを持つことです。 2つのボタンのうちの1つが消えても、タイトルは中央に置かなければなりません。

ダミーの非表示のビューを使用して左右の「コンポーネント」が同じ幅になるようにすることで、この動作を達成することはあまり難しくありません。

上記がうまくいかないユースケースは、タイトルが長すぎて論理的にセンタリングされない(または左ボタンが欠落している)場合です。その場合、私の解決策では、タイトルが省略されて素早く表示されます。所望の振る舞いは、タイトルがその空の空間に広がることである。

ご協力いただければ幸いです。私は、この説明がむしろ混乱している可能性があることを認識しています。私は何かを明確にすることを嬉しく思います。

答えて

0

RelativeLayoutを試しましたか? http://developer.android.com/reference/android/widget/RelativeLayout.html

RelativeLayoutを使用すると、ボタンのスペースを残すために左右のlayout_marginを除いて、TextViewにそのトップバーの幅全体を塗りつぶすことができます。左右のボタンは、RelativeLayoutの2番目のレイヤー(TextViewの下)に配置されます。

+0

あなたのアプローチでは、可変幅のボタンの説明はありません。例えば、ボタンが一切なく、本当に長いタイトルがあるとしたらどうでしょうか?その場合、TextViewはRelativeLayoutの幅全体を指定する必要があります。 – zienkikk

0
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/relativeLayout1" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" > 

    <Button 
     android:id="@+id/button1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_centerVertical="true" 
     android:text="Button" /> 

    <Button 
     android:id="@+id/button2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:layout_centerVertical="true" 
     android:text="Button" /> 

    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerHorizontal="true" 
     android:layout_centerVertical="true" 
     android:layout_toRightOf="@id/button1" 
     android:layout_toLeftOf="@id/button2" 
     android:ellipsize="middle" 
     android:text="TextView" /> 

</RelativeLayout> 
+0

キャンディー、私はそれが簡単だとは思わない。タイトルが本当に長い場合はどうなりますか?私は、このレイアウトは、左ボタンの上にタイトルの左の部分を、右のボタンの下に右の部分を表示すると思いますか?私はあなたがRelativeLayout内の他のビューを検出する機能を失うというレイアウトの属性を親の相対位置に配置すると、印象に残っていた – zienkikk

+0

... – candyleung

関連する問題