我使用自己的ProjectSpinnerAdapter创建了一个自定义微调器。我还有另一个类,它只是膨胀布局但还没有实现,所以仍然使用标准的微调器。
我似乎无法使自定义微调器以与标准微调器相同的方式对齐。
当项目的长度比表格单元格宽时,我也遇到问题,如下所示。如果超过一定长度,是否有办法截断选项? - 这似乎不是解决这个问题的正确方法,但我不能直接设置小部件的宽度,因为这是通过表格布局控制的。*
**已修复,请参阅更新*
标准微调器与它旁边的Button完美对齐(它们都包含在同一个TableRow中)
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:stretchColumns="1" >
<TableRow>
<Button
android:id="@+id/selectButton"
android:text="@string/show" />
<Spinner android:id="@+id/projectSpinner" />
</TableRow>
<?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="wrap_content"
>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/title_text_view"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:maxLength="15"
android:gravity="center"/>
</LinearLayout>
问题是微调器项目的布局,在我的自定义布局spinner_list_item.xml中我指定了一个布局我需要的是textview
spinner_list_item.xml(使用maxLength)
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/title_text_view"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:maxLength="15" />
答案 0 :(得分:1)
如果我问,为什么选择TableLayout?我认为使用RelativeLayout
和layout_toRightOf
layout_below
等可以实现同样的效果。或者LinearLayout
每个孩子都有weightSum
和gravity
拥有layout_weight
。
我不打算给你一个改变你的整个布局的解决方案;),但我测试了这个,这似乎对我有用。
<TableRow>
<Button
android:id="@+id/selectButton"
android:maxLength="10"
android:text="sdadadasdfffffffffffffffffffffffff"/>
<Spinner
android:id="@+id/projectSpinner"
android:ellipsize="end"
android:lines="1"
android:scrollHorizontally="true" />
</TableRow>
希望这有效,而且比设置固定的字符串长度更好
修改强>
我不确定你为什么要按照自己的方式填充微调器,但你可以尝试:
<?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"
>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/title_text_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:maxLength="15"/>
</RelativeLayout>
android:gravity
也是错误的,需要android:layout_gravity
(但那只是LinearLayout
上次修改:D
尝试使用默认布局
view = vi.inflate(android.R.layout.spinner_list_item, null);
然后
((TextView) view.findViewById(R.id.text1)).setText(title);