我有一个简单的布局:
<?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 由简单的自定义适配器组成:
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 类
这是我到目前为止所拥有的:
正如您从图片中看到的那样,城市是左对齐的。我怎样才能以这些城市为中心???这让我发疯了!
***** 发现问题:它在verticaltextview 类中:canvas.translate(getCompoundPaddingLeft(), getExtendedPaddingTop());**
getCompoundPaddingLeft right top bottom 总是返回 30 ,布局变得一团糟。有谁知道为什么?????????或如何解决?