ListItems位于中心位置

时间:2012-11-19 11:34:01

标签: android android-layout android-actionbar actionbarsherlock android-dialog

我正在android中构建我的第一个应用程序。我也使用ActionBarSherlock。我现在要开发的是一个对话框,在radioGroup的顶部和下方显示一个radioGroup列表。我已经这样做了,但我列表上的物品位于左侧。有什么方法可以将它们放在中间位置吗?感谢您的时间

这是xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent" android:layout_height="match_parent">


<RadioGroup
    android:id="@+id/radiogroup"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >




        <RadioButton
            android:id="@+id/radioButton1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="20dp"
            android:checked="true"
            android:text="Justified" />



        <RadioButton
            android:id="@+id/radioButton2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="20dp"
            android:text="Unjustified" />

</RadioGroup>



<customAdapter.MyListView
    android:id="@+id/list"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:layout_marginTop="20dp" >

</customAdapter.MyListView>

这是实际的代码:

 public static class MyDialogFragment extends SherlockDialogFragment {
    int mNum;
    RadioButton btn1;
    RadioButton btn2;


    /**
     * Create a new instance of MyDialogFragment, providing "num"
     * as an argument.
     */
    static MyDialogFragment newInstance(int num) {
        MyDialogFragment f = new MyDialogFragment();

        // Supply num input as an argument.
        Bundle args = new Bundle();
        args.putInt("num", num);
        f.setArguments(args);

        return f;
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        mNum = getArguments().getInt("num");


    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.myfrg, container, false);




        ListView lv = (ListView) v.findViewById(R.id.list);

        ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item,justifiedAbsences);
        dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
        lv.setAdapter(dataAdapter);






        return v;
    }
}

这是在我添加了fravity =“center”

之后
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent" android:layout_height="match_parent"
android:gravity = "center" >


<RadioGroup
    android:id="@+id/radiogroup"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >




        <RadioButton
            android:id="@+id/radioButton1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="20dp"
            android:checked="true"
            android:text="Justified" />



        <RadioButton
            android:id="@+id/radioButton2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="20dp"
            android:text="Unjustified" />

</RadioGroup>



<ListView
    android:id="@+id/list"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:layout_marginTop="20dp" >

</ListView>

3 个答案:

答案 0 :(得分:1)

您必须将自己的布局扩展到列表项。列表项应该如下所示

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

    <!-- List item name -->
    <TextView
        android:id="@+id/name"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true">
    </TextView>
</RelativeLayout>

答案 1 :(得分:0)

在你的行上

dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 

您应该将布局更改为以文本为中心的新布局。

答案 2 :(得分:0)

这是最后的结果..

<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent" 
android:layout_height="match_parent"
android:gravity = "center" >

<RadioGroup
    android:id="@+id/radiogroup"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center" >

        <RadioButton
            android:id="@+id/radioButton1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:checked="true"
            android:text="Justified" />

        <RadioButton
            android:id="@+id/radioButton2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Unjustified" />

</RadioGroup>


<ListView
    android:id="@+id/list"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:layout_marginTop="20dp" >

</ListView>