2015-07-07 3 views
2

Пользовательская панель действий не заполняет родительский элемент.Пользовательская панель действий не заполняет родителя

Я использую пользовательскую панель действий для навигации. Но моя панель действий оставляет некоторое пространство слева на панели слева.

Я использовал код как этот.

// to inflate custom view 

      LayoutInflater inflator= (LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      View v=inflator.inflate(R.layout.custom_action_top_bar, null); 
      getActionBar().setHomeButtonEnabled(false); 
      getActionBar().setDisplayShowTitleEnabled(false); 
      getActionBar().setDisplayShowCustomEnabled(true); 
      getActionBar().setIcon(new ColorDrawable(getResources().getColor(android.R.color.transparent))); 
      getActionBar().setCustomView(v); 

      View v1 = getActionBar().getCustomView(); 
      LayoutParams lp = (LayoutParams) v1.getLayoutParams(); 
      lp.width = LayoutParams.FILL_PARENT; 
      v1.setLayoutParams(lp); 

это action_custom_action_top_bar файл для справки

Этот XML-файл содержит основную линейную компоновку с левым и правым imageviews для открытия двух односторонних ящиков соответственно. но добавление пространства произошло на левой стороне панели действий может кто-нибудь помочь мне?

это бар настраиваемого действия я использовал в этом некоторых цветах фона я дал на панель действий и два изображения для каждой стороны для ящиков

<LinearLayout     
     android:layout_width="fill_parent" 
     android:layout_height="match_parent" 
     android:layout_gravity="center" 
     android:orientation="horizontal" 
     android:weightSum="1.0" > 

     <ImageView 
      android:id="@+id/IV_leftIcon" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_weight=".2" 
      android:background="@color/light_green" 
      android:src="@drawable/header_menu_btn" /> 

     <TextView 
      android:id="@+id/actionText" 
      style="@style/action_bar_top_text_size" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_weight=".6" 
      android:background="@color/light_green" 
      android:drawableRight="@drawable/header_dropdown_arrow" 
      android:gravity="center" 
      android:text="Sample" 
      android:textColor="@color/white" /> 

     <ImageView 
      android:id="@+id/IV_rightIcon" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_weight=".2" 
      android:background="@color/light_green" 
      android:src="@drawable/plus_btn" /> 

    </LinearLayout> 
+2

Pls вывесить XML – AmaJayJB

+0

эй AmaJayJB смотрите файл XML, который я отправил в последнее время. – Vijay

+0

удалить центр тяжести, сделать ширину совпадения с родителем –

ответ

8

как сделать заполнить панель действий ширина

ОБНОВЛЕНО ОТВЕТ

удалить андроид: layout_gravity = «центр» в корневом линейном быть, как это делают высоты WRA p_content

<LinearLayout     
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 

     android:orientation="horizontal" 
     android:weightSum="1.0" > 

     ...... 
</LinearLayout> 

Предпочитают использовать getSupportActionBar() как деятельность по умолчанию распространяется ActionBarActivity

import android.support.v7.app.ActionBar.LayoutParams; 
import android.support.v7.widget.Toolbar; 


public class MainActivity extends ActionBarActivity { 



    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 


     getSupportActionBar().setHomeButtonEnabled(false); 
    getSupportActionBar().setDisplayShowTitleEnabled(false); 
    getSupportActionBar().setDisplayShowCustomEnabled(true); 
    getSupportActionBar().setIcon(new ColorDrawable(getResources().getColor(android.R.color.transparent))); 



    LayoutParams layoutParams = new LayoutParams(LayoutParams.MATCH_PARENT, 
      LayoutParams.MATCH_PARENT); 
    getSupportActionBar().setCustomView(v, layoutParams); 
    Toolbar parent = (Toolbar) v.getParent(); 
    parent.setContentInsetsAbsolute(0, 0); 

} 
} 

Резюме

Я понимаю, почему у вас есть проблемы, вы используете затмение со старой библиотекой поддержки что dosenot поддержка ToolBar использование appcompat-v21 или более поздняя версия

мой вам совет, использовать Android студии, как они прекращают поддержку затмить

этот код работает 100%, доказать концепции

enter image description here

+0

Я попробовал это ... снова тот же результат ... может у дать мне ur mailid ... так что я могу отправить его на u. – Vijay

+0

[email protected] –

+0

Я обновляю свой ответ с помощью библиотеки поддержки v7 –

2

Просто добавьте эти символы 2 строки в вашей панели инструментов кода XML

app:contentInsetStart="0dp" 
     app:contentInsetEnd="0dp" 

Это решит вашу проблему.

Вот мой рабочий код:

<android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="?attr/actionBarSize" 
     android:background="@color/colorPrimary" 
     app:popupTheme="@style/AppTheme.PopupOverlay" 
     app:contentInsetStart="0dp" 
     app:contentInsetEnd="0dp"> 
     <include layout="@layout/your_custom_toolbar_layout"/> 
    </android.support.v7.widget.Toolbar> 
Смежные вопросы