使用LayoutParams在按钮上设置layout_gravity时出现问题

Day*_*man 3 android button layoutparams

我正在向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");
Run Code Online (Sandbox Code Playgroud)

listview的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>
Run Code Online (Sandbox Code Playgroud)

我正在膨胀的按钮布局是:

<?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>
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我已尝试在代码和按钮中设置layout_gravity参数,但它们都不起作用.我仍然显示屏幕左侧的按钮.似乎布局参数不起作用.但是,如果我为宽度设置fill_parent,我会在整个屏幕上显示按钮,我希望按钮包裹文本并对齐屏幕右侧.

wje*_*hak 5

你的ButtonListView包含在LinearLayout,android:layout_gravity属性应该与FrameLayout父视图一起使用,不要设置FrameLayout.LayoutParams lyp1为按钮的布局参数,

尝试设置android:gravity="right"你的根LinearLayout或将你的按钮嵌入另一个LinearLayout,重力设置为右,你可以通过findViewById稍后调用膨胀的布局轻松获得按钮实例