Заголовок не отображается на mainActivity

Я установил счетчик на панели действий Android, поместил счетчик в макет test.xml и вызываю его так в основной операции в методе OnCreate()

   ActionBar actionBar = getActionBar();
    actionBar.setBackgroundDrawable(new ColorDrawable(Color.GREEN));
    actionBar.setDisplayShowCustomEnabled(true);

    actionBar.setCustomView(R.layout.activity_test);
    setContentView(R.layout.activity_main);
    actionBar.setTitle("Home");

Но мой заголовок не отображается. я хочу показать HOME в качестве заголовка на панели действий, что мне делать?

Моя активность_тест

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <Spinner
        android:id="@+id/planets_spinner"
        android:layout_width="100dp"
        android:layout_height="50sp"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
      android:background="@drawable/arrow2"
        android:layout_weight="0.08"
        android:drawSelectorOnTop="true" />

</RelativeLayout>

2 ответа

Решение

Я решил проблему, добавив textView к своему Activity_test, так как все это действие отображается на панели действий, поэтому я добавил текстовое представление, и проблема решена:)

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >


    <Spinner
        android:id="@+id/planets_spinner"
        android:layout_width="100dp"
        android:layout_height="50sp"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:background="@drawable/arrow2"
        android:drawSelectorOnTop="true" />

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/planets_spinner"
        android:layout_alignParentLeft="true"
        android:layout_marginBottom="6dp"
        android:layout_marginLeft="6dp"
        android:textStyle="bold"
        android:textSize="20sp"
        android:textColor="#ffffff"
        android:text="Scene" />

</RelativeLayout>

Когда вы установите android:layout_alignParentRight="true", RelativeLayout использует все пространство, включая пространство заголовка и заголовок не отображается. Вы можете проверить поведение, нарисовав границу вокруг RelativeLayout. Но RelativeLayout не занимает больше места, если вы не используете android:layout_alignParentRight="true", Это не займет больше места, если вы используете android:layout_alignParentLeft="true", тоже. Странно работает только android:layout_alignParentRight="true", Чтобы показать представление справа от родителя, у меня сработало следующее:

<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/profile_image"
        android:layout_width="40dp"
        android:src="@drawable/ic_launcher"
        android:layout_height="40dp"
        android:background="?android:selectableItemBackground"
        android:padding="3dp"
        android:scaleType="centerCrop" /> 

Не используйте RelativeLayout. Просто вид, который вам нужен. Затем вы можете выровнять прямо с LayoutParams, показанным ниже:

actionBar.setCustomView(R.layout.actionbar_layout);
actionBar.setDisplayShowCustomEnabled(true);
ImageView imageProfile = (ImageView)actionBar.getCustomView();
int length = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 40, getResources().getDisplayMetrics());
Toolbar.LayoutParams layoutParams = new Toolbar.LayoutParams(
                length,
                length, Gravity.RIGHT
                | Gravity.CENTER_VERTICAL);
imageProfile.setLayoutParams(layoutParams);

Теперь вы сможете просматривать как заголовок ActionBar, так и ImageView.

Другие вопросы по тегам