0

私はAndroidでカスタムダイアログを設計しています。この目的のために、xmlファイルを次のように設計しました

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:background="@color/item_bg_color"
    android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal">

    <TextView android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/custom_dialog_text"
    android:textColor="#000000" 
    android:textSize="14dip"
    android:typeface="serif"
    android:singleLine="false"
    android:text="You are not authorized to use this application." 
    android:layout_marginTop="10dip"/>

    <Button android:id="@+id/custom_button_ok" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"
    android:text="Ok" 
    android:layout_below="@+id/custom_dialog_text"
    android:layout_toRightOf="@+id/custom_dialog_text"/>


</RelativeLayout>

問題 :

TextView の最後 (右) にボタンを表示したいのですが、textview のテキストは複数行にする必要があります (さらに文字を表示する必要がある場合)。しかし、このレイアウトを使用していると、ボタンがどこにも表示されません。

LinearLayout と TableLayout も使用しましたが、どちらの場合もボタンが少しだけ表示されています。どこが間違っていますか?

4

5 に答える 5

1

基本的に、ボタンを右に揃えるように指示し、必要なスペースをすべて取り、残りのスペースをTextViewに割り当てます。android:layout_layout_alignParentRight="true"これを行うには、ボタンとandroid:layout_toLeftOf="@id/custom_button_ok"TextViewを指定します。注文に注意してください!!!

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:background="@color/item_bg_color" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal">
  <Button android:id="@+id/custom_button_ok" 
   android:layout_width="wrap_content" 
   android:layout_height="wrap_content"
   android:text="Ok" 
   android:layout_layout_alignParentRight="true" />

  <TextView android:layout_width="wrap_content" 
   android:layout_height="wrap_content" 
   android:id="@+id/custom_dialog_text"
   android:textColor="#000000" 
   android:textSize="14dip"
   android:typeface="serif"
   android:singleLine="false"
   android:text="You are not authorized to use this application." 
   android:layout_marginTop="10dip"
   android:layout_toLeftOf="@id/custom_button_ok"
  />
</RelativeLayout>
于 2011-07-05T11:19:36.627 に答える
0

layout_belwプロパティとlayout_rightofプロパティは、テキストビューで同じIDに設定されます。layout_belowを使用するだけです。また、ボタンの重力を下に設定することもできます。

于 2011-07-05T11:20:52.710 に答える
0

これをやってみて..

<TextView android:layout_width="100dip" 
    android:layout_height="wrap_content" 
    android:id="@+id/custom_dialog_text"
    android:textColor="#000000" 
    android:textSize="14dip"
    android:typeface="serif"
    android:singleLine="false"
    android:text="You are not authorized to use this application." 
    android:layout_marginTop="10dip"/>
于 2011-07-05T11:17:10.867 に答える
0

以下のコードを試してください

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" android:layout_height="wrap_content"
    android:orientation="horizontal" android:weightSum="1.0">
    <RelativeLayout android:layout_height="wrap_content"
        android:layout_width="0dp" android:layout_weight="0.85">
        <TextView android:layout_width="fill_parent"
            android:layout_height="wrap_content" android:id="@+id/custom_dialog_text"
            android:textColor="#FFFFFF" android:textSize="14dip"
            android:typeface="serif" android:singleLine="false"
            android:text="You are not authorized to use zdsaddsad this application."
            android:layout_marginTop="10dip" />
    </RelativeLayout>
    <RelativeLayout android:layout_height="wrap_content"
        android:layout_width="0dp" android:layout_weight="0.15">
        <Button android:id="@+id/custom_button_ok"
            android:layout_width="wrap_content" android:layout_height="wrap_content"
            android:text="Ok" />
    </RelativeLayout>

</LinearLayout>
于 2011-07-05T11:21:04.583 に答える
0

ボタンの場合、属性 android:layout_alignParentRight,android:layout_below を追加してください。

于 2011-07-05T11:15:44.030 に答える