2016-04-05 57 views
4

Kıllarımı bu sol tampon/kenar boşluğuna karşı çekiyorum, sadece gitme sorunu yok, kel olmak üzere ... Bunun için bir çözüm çok takdir edilecek! Bu cevapları SO'dan denedim, bazı dolguları taşıdım, ama hepsini değil. Temel olarak tüm cevaplar, için contentInsetStart ve contentInsetLeft değerini 0dp'ye ayarlıyor. Bu, soldaki bazı dolguları kaldırır, ancak hala bir dolgu görürüm, yalnızca contentInsetStart ve contentInsetLeft öğesini 0dp olarak ayarladığımdan daha küçük. Bu çözüm Samsung telefonlarda çalışır, ancak vb Nexus 7, Nexus 9 Dell Venüs 8, enter image description hereAndroid'de ActionBar'da sol dolgu marjı ekstra alan nasıl kaldırılır?

olarak test ettik herhangi tabletlerde Ben bir sürü insan bu sorunu vardı inanıyoruz ve bunlar denedim ama hala yukarıda gösterilen solda bir dolgu/marjı bırakarak cevaplar.

Android: remove left margin from actionbar's custom layout

Android Lollipop, AppCompat ActionBar custom view doesn't take up whole screen width

Android API 21 Toolbar Padding

Padding/margin on the left side of my activity/actionbar - dont know where it comes from, cannot remove it

How to remove default layout's padding/margin

How to remove the margin between the app icon and the edge of the screen on the ActionBar?

etkinlik düzen, activity_main.xml, hemen hemen boş, sadece bir kukla düzen Ana faaliyet sınıfı için var

<resources> 
    <style name="AppTheme" parent="Theme.AppCompat.Light"> 
     <item name="actionBarStyle">@style/AppThemeActionBar</item> 
     <item name="logo">@android:color/transparent</item> 
    </style> 

    <style name="AppThemeActionBar" parent="@style/Widget.AppCompat.ActionBar"> 
     <item name="displayOptions">showCustom</item> 
     <item name="background">@color/blue</item> 
     <item name="actionBarSize">50dp</item> 
     <item name="height">50dp</item> 

     <item name="contentInsetLeft">0dp</item> 
     <item name="contentInsetStart">0dp</item> 
     <item name="contentInsetEnd">0dp</item> 
     <item name="android:layout_marginLeft">0dp</item> 
    </style> 
</resources> 

tarzı, özel işlem çubuğu görünümü başka düzen dosyasında olduğunu.

Şimdi
<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

</LinearLayout> 

, burada düzen İşlem Çubuğu gelenektir

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="50dp" > 

    <Button 
     android:id="@+id/btn_home" 
     android:layout_width="50dp" 
     android:layout_height="50dp" 
     android:layout_alignParentLeft="true" 
     android:layout_centerVertical="true" 
     android:background="#ea6464" 
     android:text="Home"/> 

    <TextView 
     android:id="@+id/title_text" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:layout_marginLeft="10dp" 
     android:layout_toRightOf="@+id/btn_home" 
     android:gravity="center" 
     android:textColor="#fff" 
     android:textStyle="bold" 
     android:text="Hello"/> 

    <ImageButton 
     android:id="@+id/imageButton" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:layout_centerVertical="true" 
     android:src="@android:drawable/ic_menu_edit" 
     android:background="@null"/> 
</RelativeLayout> 

düzeni İşlem Çubuğu özel şişirir ve onu mActionBar.setCustomView (mCustomView) ayarlamak MainActivity.java;

public class MainActivity extends AppCompatActivity { 

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

     ActionBar mActionBar = getSupportActionBar(); 
     mActionBar.setDisplayShowHomeEnabled(false); 
     mActionBar.setDisplayShowTitleEnabled(false); 

     LayoutInflater mInflater = LayoutInflater.from(this); 
     View mCustomView = mInflater.inflate(R.layout.custom_actionbar, null); 
     mActionBar.setCustomView(mCustomView); 
     mActionBar.setDisplayShowCustomEnabled(true); 

     Button btnHome = (Button) findViewById(R.id.btn_home); 

     btnHome.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Toast.makeText(getApplicationContext(), "Home Button Clicked!", Toast.LENGTH_SHORT).show(); 
      } 
     }); 
    } 
} 

bu konuyla örnek uygulaması yerine bir ActionBar bir ToolBar kullanabilir ve setContentInsetsAbsolute arayın veya gerçekten İşlem Çubuğu tutmak istiyorsanız, bunu böyle yapmak gerektiğine here

+0

Araç Çubuğunu Araç Çubuğu Kullanmalıyım –

+0

Araç Çubuğu ile denedim ve aynı sorunu veriyor. –

+1

, araç çubuğu veya eylem çubuğu ne istediğinizi yapmadıysa, araç çubuğu gibi bir düzen oluşturabilir (RelativeLayout'u kullanabilir) ve araç çubuğu olarak kullanabilirsiniz –

cevap

0

bulunabilir:

ActionBar mActionBar = getSupportActionBar(); 
mActionBar.setDisplayShowHomeEnabled(false); 
mActionBar.setDisplayShowTitleEnabled(false); 

LayoutInflater mInflater = LayoutInflater.from(this); 
View mCustomView = mInflater.inflate(R.layout.custom_actionbar, null); 
mActionBar.setCustomView(mCustomView); 
mActionBar.setDisplayShowCustomEnabled(true); 
Toolbar parent = (Toolbar) customView.getParent(); 
parent.setContentInsetsAbsolute(0,0); 
+1

Yukarıda listelediğim cevaplar, ToolBar ile bir çözümü var ve denedim, ancak yine de soldaki dolguyu tamamen kaldırmıyor. Seninki gibi cevaplar da var ve işe yaramıyor ... –