1

как я могу выровнять кнопку с именем Reload справа от моего экрана действий? я знаю, что это возможно, я судимый положить андроид: плотность = "право", но это не работалоКнопка выравнивания панели действий Android справа

activity_main_ab.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" 
android:gravity="fill_horizontal" 
android:orientation="horizontal" > 
<LinearLayout 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:layout_alignParentLeft="true" 
android:orientation="horizontal" > 

<Button 
android:id="@+id/action_bar_button_about" 
android:layout_width="fill_parent" 
android:layout_height="match_parent"   
android:layout_weight="1" 
android:background="@drawable/ios_btn" 
android:textColor="#ffffff" 
android:text="about" /> 

<Button 
android:id="@+id/action_bar_button_reload" 
android:layout_width="fill_parent" 
android:layout_height="match_parent" 
android:background="@drawable/ios_btn"   
android:layout_weight="1" 
android:textColor="#ffffff" 
android:text="reload" /> 
</LinearLayout>  
</RelativeLayout> 

здесь моя MainActivity.java

package jb.cydia; 

import android.os.Bundle; 
import android.app.ActionBar; 
import android.app.Activity; 
import android.view.LayoutInflater; 
import android.view.View; 

public class MainActivity extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    final ActionBar ab = getActionBar(); 
    ab.setDisplayShowHomeEnabled(false); 
    ab.setDisplayShowTitleEnabled(false);  
    final LayoutInflater inflater = (LayoutInflater)getSystemService("layout_inflater"); 
    View view = inflater.inflate(R.layout.activity_main_ab,null); 
    ab.setCustomView(view); 
    ab.setDisplayShowCustomEnabled(true); 

} 
} 

enter image description here

да, похоже, что IOS я знаю андроиды о настройке правильно ???

ответ

2

Вам не нужен LinearLayout. Придерживайтесь RelativeLayout и использовать андроид: layout_alignParentRight = «истинный»

Посмотрите на это ответ, который показывает хороший пример: Android Layout Right Align

<?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" 
android:gravity="fill_horizontal" 
android:orientation="horizontal" > 


<Button 
android:id="@+id/action_bar_button_about" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content"   
android:layout_weight="1" 
android:background="@drawable/ios_btn" 
android:textColor="#ffffff" 
android:text="about" /> 

<Button 
android:id="@+id/action_bar_button_reload" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:background="@drawable/ios_btn"   
android:layout_weight="1" 
android:textColor="#ffffff" 
android:text="reload" 
android:layout_alignParentRight="true"/> 

</RelativeLayout> 

Вот что я сделал:

  • удален Линейный макет
  • добавлено android:layout_alignParentRight="true"
  • изменено андроид: layout_width и layout_height to wrap_content
+0

я знаю, что и означает sortof ... может у отправить правку моего XML-кода с его редакцией, как у говорили ?? –

1

Родитель настраиваемого представления ActionBar выглядит как FrameLayout. Таким образом, самым быстрым решением является:

android:layout_width="wrap_content" 
android:layout_gravity="end" 

на верхнем уровне или в контейнере.

Поскольку это делает предположение о реализации взгляда ActionBar, Enno, вероятно, более надежна. Тем не менее, я считаю это довольно безопасным предположением.

+0

+1 для простого подхода, который показывает исследование –

1

Вы должны сделать что-то вроде этого:

actionBar.setCustomView(view, new ActionBar.LayoutParams(ActionBar.LayoutParams.WRAP_CONTENT, 
    ActionBar.LayoutParams.WRAP_CONTENT, Gravity.RIGHT | Gravity.CENTER_VERTICAL)); 
actionBar.setDisplayShowCustomEnabled(visible); 
Смежные вопросы