質問:
タイトルを元に戻すにはどうすればよいですか?
これがスクリーンショットです(タイトルがありません):
アクションバー設定:
ActionBar actionBar = getSupportActionBar();
actionBar.setTitle("My Title");
actionBar.setIcon(drawable.dropdown_user);
View mLogoView = LayoutInflater.from(this).inflate(R.layout.mLogoView, null);
actionBar.setCustomView(mLogoView);
actionBar.setDisplayShowCustomEnabled(true);
actionBar.setDisplayShowTitleEnabled(true);
actionBar.setDisplayHomeAsUpEnabled(true);
mLogoView.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="wrap_content"
Android:layout_height="match_parent" >
<ImageView
Android:id="@+id/img_merchant"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_alignParentRight="true"
Android:src="@drawable/infoflex">
</ImageView>
</RelativeLayout >
私が修正する方法を最初に考えることができるのは、設定しようとすることです
<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="wrap_content"
Android:layout_height="match_parent"
Android:layout_gravity="right" >
RelativeLayout
に。 Androidのデフォルトでは、すべてのビューが左から右に追加されるためです(コードで他に何かを指定しない場合)。
それでも問題が解決しない場合は、画像とテストに応じてAndroid:layout_width="90dip"
またはその他の値を追加します。 2番目のオプションは回避策のようなものですが、すべてのデバイスで機能すると思います。
編集:
ActionBarでRelativeLayout
とカスタムビューを使用すると少し問題があることがわかったので、LinearLayout
を使用してコードでLayoutParams
を設定することをお勧めします。次のようにxmlを変更します。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content" >
<ImageView
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:src="@drawable/asus" />
</LinearLayout >
mainActivity.classでこれを使用します:
import com.actionbarsherlock.app.ActionBar.LayoutParams;
....
ActionBar actionBar = getSupportActionBar();
actionBar.setTitle("OMG");
LayoutParams lp = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, Gravity.RIGHT | Gravity.CENTER_VERTICAL);
View customNav = LayoutInflater.from(this).inflate(R.layout.img, null); // layout which contains your button.
actionBar.setCustomView(customNav, lp);
actionBar.setDisplayShowCustomEnabled(true);