我使用以下样式来布局按钮:
<style name="Button.Web" parent="@android:style/TextAppearance.Small">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:singleLine">true</item>
<item name="android:autoLink">web</item>
</style>
按钮本身嵌套在一些LinearLayouts
包裹在 a 中ExpandableListView
:
<Button
android:id="@+id/button_web"
style="@style/Button.Web" />
在我的子类中,BaseExpandableListAdapter
我为按钮的每个实例动态设置文本:
Button buttonWeb = (Button) convertView.findViewById(R.id.button_web);
buttonWeb.setText("http://www.example.com/" + page);
当我展开ExpandableListView
按钮的项目时,会显示(参见“数字 2”和“数字 4”中的按钮)。但是,上面没有呈现文本。在我触摸按钮的那一刻,文本出现(参见“数字 3”中的按钮)。
实验
- 我在玩弄风格设置时注意到,这些设置的组合并
android:singleLine
产生android:autoLink
了所描述的行为。 - 我发现它
android:singleLine
实际上已被弃用,如API 文档中所述。因此,我按照那里的建议测试android:maxLines
了设置。1
这会产生一个带有垂直滚动的多行文本的按钮。