我有一个简单的布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center_vertical|center_horizontal"
android:orientation="horizontal" >
<fragment class="my.test.package.CitiesFragment"
android:id="@+id/cities" android:layout_weight="4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|center_horizontal"
/>
//....
</LinearLayout>
在左边你可以看到我有一个listfragment,我用城市填充它。
Listfragment包含简单的自定义适配器:
setListAdapter(new CitiesArrayAdapter<String>(getActivity(), R.layout.city_list_item, citiesArrayList));
,city_list_item.xml为:
<my.test.package.VerticalTextView xmlns:android="http://schemas.android.com/apk/res/android"
style="@style/verticalTextStyle"
android:id="@+id/VerticalTextView" android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center_horizontal|center_vertical"
android:layout_gravity="center_horizontal|center_vertical"
android:background="@android:color/black"
android:textColor="@android:color/white"
/>
VerticalTextView类取自本网站。代码在这里: VerticalTextView class
这是我到目前为止:
从图中可以看出,城市是左对齐的。我怎样才能将这些城市居中?这让我疯了!
*****发现问题:它在verticaltextview类中: canvas.translate(getCompoundPaddingLeft(),getExtendedPaddingTop()); **
getCompoundPaddingLeft右上角总是返回30,布局搞砸了。 谁知道为什么??????????或者如何解决?