2015-12-06 1 views
0

Я новичок в Android. У меня есть строка заголовка, которая отдельно помещается в tool_bar.xml. Теперь у меня есть два фрагмента. Из одного фрагмента я создаю новое действие, которое должно включать tool_bar.xml (строка заголовка). Проблема заключается в том, что я включаю «tool_bar.xml» в новый файл xml create activty. Строка заголовка перекрывается со списком.Заголовок Бар с перекрытием фрагментов с видом списка

Я также пробовал настраиваемый метод заголовка в методе On-create, но он не работал. Я думаю, что включение tool_bar.xml будет таким, но оно будет перекрываться со списком.

Tool_bar.xml:

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v7.widget.Toolbar 
android:layout_height="wrap_content" 
android:layout_width="match_parent" 
android:background="@color/ColorPrimary" 
android:elevation="2dp" 
android:theme="@style/Base.ThemeOverlay.AppCompat.Dark" 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_alignParentTop="true"/> 

Activty_category_blogs.xml (XML вновь созданного activty)

<?xml version="1.0" encoding="utf-8"?> 

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" 
android:layout_height="wrap_content" tools:context="com.example.talha.test_fragement.Category_Blogs" 
xmlns:ads="http://schemas.android.com/apk/res-auto"> 
<include layout="@layout/tool_bar" /> 
<FrameLayout android:layout_width="fill_parent" 
    android:layout_height="wrap_content"> 
    <ListView android:id="@android:id/list" android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_above="@+id/adView" android:divider="#b5b5b5" 
     android:dividerHeight="1dp" 
     android:layout_alignParentBottom="true" 
     /> 


    <TextView android:id="@android:id/empty" android:layout_width="match_parent" 
     android:layout_height="match_parent" android:gravity="center" 
     android:layout_gravity="right|top" /> 

</FrameLayout> 

Отредактировано:

OnCreate Метод:

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_category__blogs); 
    Intent intent = getIntent(); 
    String message = intent.getStringExtra(Tab2.EXTRA_MESSAGE); 
    String link = message + "?feed=titles"; 
    Log.d("ye category click krne par next activity me ye link bnta hy parsing ke liye",link); 
    loadPage(link); 
} 

Log Cat Ошибка нулевой объект:

2339-2339/com.example.talha.test_fragement E/AndroidRuntime﹕ FATAL EXCEPTION: main 
Process: com.example.talha.test_fragement, PID: 2339 
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.talha.test_fragement/com.example.talha.test_fragement.Category_Blogs}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.CharSequence android.support.v7.widget.Toolbar.getTitle()' on a null object reference 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2298) 
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360) 
     at android.app.ActivityThread.access$800(ActivityThread.java:144) 
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278) 
     at android.os.Handler.dispatchMessage(Handler.java:102) 
     at android.os.Looper.loop(Looper.java:135) 
     at android.app.ActivityThread.main(ActivityThread.java:5221) 
     at java.lang.reflect.Method.invoke(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:372) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) 
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.CharSequence android.support.v7.widget.Toolbar.getTitle()' on a null object reference 
     at android.support.v7.internal.widget.ToolbarWidgetWrapper.<init>(ToolbarWidgetWrapper.java:100) 
     at android.support.v7.internal.widget.ToolbarWidgetWrapper.<init>(ToolbarWidgetWrapper.java:93) 
     at android.support.v7.internal.app.ToolbarActionBar.<init>(ToolbarActionBar.java:78) 
     at android.support.v7.app.AppCompatDelegateImplV7.setSupportActionBar(AppCompatDelegateImplV7.java:204) 
     at android.support.v7.app.AppCompatActivity.setSupportActionBar(AppCompatActivity.java:99) 
     at com.example.talha.test_fragement.Category_Blogs.onCreate(Category_Blogs.java:42) 
     at android.app.Activity.performCreate(Activity.java:5937) 
     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105) 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251) 

+0

Можете ли вы приложить свой метод OnCreate()? – escull638

+0

Пожалуйста, проверьте, я отредактировал – user3585510

+0

Хорошо, у вас RelativeLayout как базовый макет. Итак, добавьте в свой атрибут макета рамки android: layout_below с идентификатором вашей панели инструментов. – pandabear

ответ

0

В вашем методе OnCreate() вашей деятельности, вы должны быть настройки панели инструментов для текущей деятельности:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_category__blogs); 
    Toolbar toolbar = (Toolbar) findViewById(R.id.tool_bar); 
    setSupportActionBar(toolbar) 
} 

Макет Activity_Category_Blogs будет содержать следующее:

<android.support.v7.widget.Toolbar 
    android:layout_height="wrap_content" 
    android:layout_width="match_parent" 
    android:background="@color/ColorPrimary" 
    android:elevation="2dp" 
    android:theme="@style/Base.ThemeOverlay.AppCompat.Dark" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_alignParentTop="true"/> 
     <LinearLayout 
      android:layout_marginTop="?attr/actionBarSize" 
      android:orientation="vertical" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent"> 

      <TextView 
       android:layout_weight="1" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:textAppearance="?android:attr/textAppearanceMedium" 
       android:minLines="1" 
       android:id="@+id/textViewTitle" /> 

     </LinearLayout> 

    </android.support.v7.widget.Toolbar> 

tool_bar файл будет иметь ту же панель инструментов, используемых в вашей деятельности без дополнительных элементов управления:

<android.support.v7.widget.Toolbar 
    android:layout_height="wrap_content" 
    android:layout_width="match_parent" 
    android:background="@color/ColorPrimary" 
    android:elevation="2dp" 
    android:theme="@style/Base.ThemeOverlay.AppCompat.Dark" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_alignParentTop="true"/> 

В вашем фрагменте OnCreate() метод, вы должны быть в состоянии установить текст textViewTitle:

((TextView)findViewById(R.id.textViewTitle)).setText("XYZ"); 
+0

Это дает ошибку на setSupportActionBar из не может метод разрешения – user3585510

+0

Ваша деятельность также должна расширять AppCompatActivity, например: Открытый класс MainActivity расширяет AppCompatActivity – escull638

+0

, он дает ссылку на null. я вставил ошибку log cat – user3585510

0
<?xml version="1.0" encoding="utf-8"?> 

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" 
android:layout_height="wrap_content" tools:context="com.example.talha.test_fragement.Category_Blogs" 
xmlns:ads="http://schemas.android.com/apk/res-auto"> 
<include layout="@layout/tool_bar" android:id="@+id/toolbar" /> 
<RelativeLayout android:layout_width="fill_parent" 
    android:layout_below="@+id/toolbar" 
    android:layout_height="fill_parent"> 
    <ListView android:id="@android:id/list" android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_above="@+id/adView" android:divider="#b5b5b5" 
     android:dividerHeight="1dp" 
     android:layout_alignParentBottom="false" 
     /> 


    <TextView android:id="@android:id/empty" android:layout_width="match_parent" 
     android:layout_height="match_parent" android:gravity="center" 
     android:layout_gravity="right|top" /> 

</RelativeLayout > 
Смежные вопросы