上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[Android]DialogFragmentでタイトルを非表示にする

DialogFragmentでカスタムダイアログを作成していて、タイトル表示が不要ななのにタイトル領域が表示されてしまうという現象が発生。

Dialog::setTitle() をしていなくても、タイトル表示領域が出てしまうという嬉しく無い仕様。。。
(ProgressDialogはタイトルをセットしなければ、表示されないのに・・・)

でも、ちゃんとタイトル領域表示させない方法は用意されています。

Dialog::requestWindowFeature() を使用して、パラメータに Window.FEATURE_NO_TITLE を指定してあげます。
これで、タイトル領域の表示はされなくなりますが、requestWindowFeature のタイミングに注意。

カスタムレイアウトをセットする前に呼び出さないと例外が発生します。
android.util.AndroidRuntimeException: requestFeature() must be called

【NGケース】
Dialog dialog = new Dialog(getActivity());
dialog.setContentView(R.layout.sample_layout);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); ← setContentViewの後に呼び出すと例外発生

【OKケース】
Dialog dialog = new Dialog(getActivity());
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.sample_layout);




[Git] resetコマンドで一つ前のコミットだけを取り消す。変更内容はそのまま。

Gitでコミットをした直後にやっぱり取り消したいということが稀にある。
ただ、取り消したいのはコミットしたことだけで変更自体は取り消したくないというとき、
そんなときは、resetコマンドでできる。

git reset --soft HEAD^

これで、コミットログだけ取り消せる(コードの変更内容はそのまま)。

使い方が正しいのか、個人的には、わからないがコミットログを変更したい場合にも使用してしまっている。。。

直前以外を取り消したい場合は "HEAD^" を変更すればOK。

[Git] rebaseコマンド

複数メンバーで開発していると、よくブランチで作業中に他のメンバーの修正がmasterに取り込まれたりして、
作業ブランチの環境が古くなり、プルリクエストをした際にコンフリクトが起きてしまうことが屡々ある。

そんな時、作業ブランチを最新状態に更新してコンフリクトを解消してプルリクエストを出すのだが、
最新状態にする方法として、mergeとrebaseがある。

mergeの場合、余計なコミットログが残ってしまうので、個人的にはrebaseでスッキリとさせる方が好きです。

慣れれば、簡単だが以下にコマンドをメモ。

git checkout master
git pull
git checkout xxxxx
git rebase master

競合しなければ、これで完了だが、競合した場合は以下も行う。

git diff
 → 競合箇所を確認

競合箇所を修正

git add xxxxx.zzz
 → rebase時にパス付きでコンフリクトしたファイル名は表示されるので、それを指定

git rebase --continue
 → rebaseの場合は、commitではなく、continueを使用します


rebaseした後にプッシュする際は -f オプションをつけて強制プッシュにしないと失敗しますので注意。

git push -f origin xxxxx:xxxxx

プロフィール

hiiro

Author:hiiro

最新記事
カテゴリ
月別アーカイブ
最新コメント
最新トラックバック
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
Counter
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。