3

私は Android の初心者レベルのプログラマーです。小規模なアプリ開発を行った後、dialogFragment を作成しました。すべてが完全に機能しており、ダイアログ ボックスも表示されています。レイアウトの背景色を変更しましたが、タイトルバーの色は同じ白のままで、タイトルテキストの色は青で、その下の青い線(緑に変更する必要があります)。どうすればこれを達成できますか? 私を助けてください

ここに私のフラグメントコードがあります

public class ClientInfofrag extends DialogFragment {

public ClientInfofrag()
{

}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
     View view = inflater.inflate(R.layout.clientinfolayout, container);
     getDialog().setTitle("Client Info");

     return view;
}
}

ありがとうございました

4

2 に答える 2

2

メソッドを使用しているため.setTitle()、白い背景などのデフォルト設定でタイトルのみを設定しています。タイトルの背景色をカスタマイズする場合は、それを行うための xml が必要です。また、DialogFragments については、私の知識と経験から、public Dialog onCreateDialog代わりにpublic View onCreateView. そうすれば、呼び出すだけでダイアログが表示されるビューだけではなく、ダイアログを返すことができ.show()ます。次に例を示します。

@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
    LayoutInflater inflater = getActivity().getLayoutInflater();

    Bundle args = getArguments();
    currentName = args.getString(ARG_CURRENT_NAME);

    builder.setView(inflater.inflate(R.layout.name_dialog, null));
    builder.setTitle("Rename Rapper Program");
    builder.setMessage("Enter a new name for " + currentName + ":"); 
    builder.setPositiveButton("Rename", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int which) {
            newName = (EditText) getDialog().findViewById(R.id.new_name);
            newProgName = newName.getText().toString();
            mRename.renameProgram(currentName, newProgName);
        }
    });
    builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int which) {
            dismiss();
        }
    });

    return builder.create();
}

以下はダイアログ xml の例ですが、上記の DialogFragment でインフレートされているのは xml ではありません。

<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
    <TextView android:drawableLeft="@drawable/login"
        android:layout_width="match_parent"
        android:layout_height="64dp"
        android:background="#FCD116"
        android:text="@string/login"
        android:textSize="36sp"/>
    <EditText android:id="@+id/username"
        android:inputType="textEmailAddress"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:layout_marginLeft="4dp"
        android:layout_marginRight="4dp"
        android:layout_marginBottom="4dp"
        android:hint="@string/un"/>
    <EditText android:id="@+id/password"
        android:inputType="textPassword"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="4dp"
        android:layout_marginLeft="4dp"
        android:layout_marginRight="4dp"
        android:layout_marginBottom="16dp"
        android:fontFamily="sans-serif"
        android:hint="@string/pw"/>

</LinearLayout>

LinearLayout、それに応じて配置される残りの子アイテムを設定しています。最初TextViewは私の「タイトル」バーとして機能し、次にEditTexts はダイアログの「本体」です。onCreateDialog上記のコードの他のスニペットのように、プログラムでボタンを設定したため、xml にボタンはありません。

于 2013-04-25T14:02:30.147 に答える