Проблема с настройкой layout_gravity для кнопки с помощью LayoutParams - PullRequest
3 голосов
/ 28 июня 2011

Я добавляю кнопку динамически в ListActivity.Следующее:

setContentView(R.layout.listview_singlegrey);
LayoutInflater inflater = (LayoutInflater)this.getSystemService
  (Context.LAYOUT_INFLATER_SERVICE);
LinearLayout linear = (LinearLayout) findViewById(R.id.list_comment);
Button btAddComment = (Button)inflater.inflate(R.layout.bt_yellow,null);
FrameLayout.LayoutParams lyp1 = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT);
lyp1.gravity = Gravity.RIGHT;
btAddComment.setLayoutParams(lyp1);     
btAddComment.setText("Añadir comentario");

LinearLayout для просмотра списка:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="fill_parent" android:orientation="vertical"
        android:layout_height="fill_parent" android:id="@+id/list_comment"
        android:paddingLeft="10dp" android:paddingRight="10dp" android:background="@drawable/fondomain">    
    <ListView android:id="@+id/android:list" android:listSelector="@android:color/transparent"
          android:layout_width="fill_parent" android:layout_height="fill_parent"
          android:divider="@layout/linedivider" android:dividerHeight="10px"
          android:cacheColorHint="#0000" android:paddingTop="10dp"           
          />
</LinearLayout>

А расположение кнопки, откуда я надуваюсь, равно:

<?xml version="1.0" encoding="utf-8"?>
<Button xmlns:android="http://schemas.android.com/apk/res/android"
     style="@style/wrapfill"         
     android:background="@layout/selectoryellowbutton" android:layout_gravity="right" android:padding="10dp"
     android:textSize="16px" android:text="Añadir comentario" android:textStyle="bold" android:textColor="@color/darkergray">
</Button>

Как вы можете видеть, я пытался установить параметры layout_gravity в коде и в кнопке, но ни один из них не работает.Я все еще отображаю кнопку в левой части экрана.Кажется, что параметры макета не работают.Но если я установлю fill_parent для ширины, я получу кнопку по всему экрану и хочу, чтобы кнопка обернула текст и выровнялась по правому краю экрана.

1 Ответ

5 голосов
/ 28 июня 2011

ваши Button и ListView содержатся в атрибуте LinearLayout, android:layout_gravity следует использовать с FrameLayout в качестве родительского представления, не устанавливайте FrameLayout.LayoutParams lyp1 в качестве параметров макета для вашей кнопки,

вместо этого попытайтесь установить android:gravity="right" вашего корня LinearLayout или вложить свою кнопку в другую LinearLayout с гравитацией, установленной вправо, вы можете легко получить экземпляр кнопки, вызвав findViewById на раздутом макете позже

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...