小编Mat*_*ers的帖子

Spinner不会包装文本 - 这是一个Android错误吗?

如果项目的文本Spinner太长而无法放入一行,则文本不会被包装但会被剪切掉.这是对于壳体API级别> = 11.以下是Android 4.2.2(左)的屏幕截图,其中显示了错误的行为,Android 2.3.3(右)显示了预期的内容.

android:singleLine="false"这里简单地被忽略了.因此,所有其他尝试,如android:lines,android:minLines等等.TextView不知何故似乎比窗口宽度宽得多.

我看到其他人有同样的问题,但没有人能找到解决方案.那么,这是一个系统错误吗?我不认为操作系统版本之间存在这种不一致.


请注意:

有一些答案表明相对简单的解决方案.

  • 编写自定义Adapter和覆盖getView()以及getDropDownView().这不是解决方案,因为在这一点上,仍然存在原始问题:布局如何处理正确的换行?

  • TextView下拉视图包装到父级中ViewGroup.不起作用,android:layout_width="match_parent"因为父母的宽度似乎是无限的.

  • 给下拉视图一个固定的宽度.这不适合具有不同的宽度Spinner.

  • 当然,没有办法在\n任何地方手动插入文本.


使用以下代码重现:

更新:我还在GitHub上下载了这个示例项目:下载

/res/values/arrays.xml:

<string-array name="items">
    <item>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt.</item>
    <item>At vero eos et accusam et justo duo dolores et ea rebum. …
Run Code Online (Sandbox Code Playgroud)

android spinner android-layout android-spinner

66
推荐指数
6
解决办法
4万
查看次数

PreferenceActivity中的ActionBar

示例:Android Market

在我的应用程序中,我使用来自Google(位于<sdk>/samples/android-<version>/ActionBarCompat)的新动作栏兼容性示例,该示例效果很好.我唯一的问题就是将此应用于我PreferenceActivity,以获得类似Android Market中的设置的屏幕(见图片).

要填充ActionBar图标,每个图标都Activity必须扩展ActionBarActivity.问题是我Activity已经扩展PreferenceActivity并且在Java类中不能扩展多个类.

必须有一种方法来与... ActionBar一起PreferenceScreen.如果有人能为这个共同问题提供解决方案,我会很高兴.

PS:如何向PreferenceScreen添加按钮的解决方案不适合,因为ActionBar它实际上是标题栏,所以这更像是Java而不是布局.

java android android-preferences android-layout android-actionbar

12
推荐指数
2
解决办法
2万
查看次数

如何点击工具栏后面的视图?

我有一个透明/半透明背景的工具栏,覆盖内容.因此,在工具栏后面,可以显示可单击的视图.问题是它们无法通过工具栏单击,因为工具栏正在捕获click事件.

我尝试设置android:clickable="false",android:focusable="false"android:focusableInTouchMode="false"为工具栏,但它没有任何效果.如何通过工具栏将点击发送到基础视图?

android android-actionbar android-support-library material-design android-toolbar

12
推荐指数
1
解决办法
1957
查看次数

ActionBarSherlock - 如何设置每个操作栏图标的填充?

如何使用ActionBarSherlock使操作栏的图标更接近或远离彼此?有点像android:layout_marginLeftandroid:paddingRight

如果我只是在操作栏上添加图标,那么与下面的Soundhound截图相比,它们更远:

SoundHound

我的themes.xml:

<style name="Theme.AstraTheme_Purple" parent="@style/Theme.Sherlock">
    <item name="actionBarStyle">@style/Widget.AstraTheme_Purple.ActionBar</item>
    <item name="android:actionBarStyle">@style/Widget.AstraTheme_Purple.ActionBar</item>

    <item name="actionButtonStyle">@style/Widget.AstraTheme_Purple.ActionButton</item>
    <item name="android:actionButtonStyle">@style/Widget.AstraTheme_Purple.ActionButton</item>
</style>

<style name="Widget.AstraTheme_Purple.ActionBar" parent="Widget.Sherlock.ActionBar">
    <item name="android:background">@drawable/purple_bar</item>
    <item name="background">@drawable/purple_bar</item>
</style>

<style name="Widget.AstraTheme_Purple.ActionButton" parent="Widget.Sherlock.ActionButton">
    <item name="android:minWidth">50dip</item>
</style>
Run Code Online (Sandbox Code Playgroud)

icons android padding actionbarsherlock android-actionbar

11
推荐指数
1
解决办法
2万
查看次数

全屏活动向导活动.如何在与设备交互时停止显示操作栏?

当我使用全屏活动向导创建活动时,它会创建一个全屏活动,但每当我点击屏幕上的任何位置时,操作栏会显示几秒钟.我怎么能阻止它这样做?

FullScreenActivity.java的完整代码

/**
 * An example full-screen activity that shows and hides the system UI (i.e.
 * status bar and navigation/system bar) with user interaction.
 * 
 * @see SystemUiHider
 */
public class FullscreenActivity extends Activity {
    /**
     * Whether or not the system UI should be auto-hidden after
     * {@link #AUTO_HIDE_DELAY_MILLIS} milliseconds.
     */
    private static final boolean AUTO_HIDE = true;

    /**
     * If {@link #AUTO_HIDE} is set, the number of milliseconds to wait after
     * user interaction before …
Run Code Online (Sandbox Code Playgroud)

android android-actionbar

10
推荐指数
2
解决办法
2万
查看次数

如何隐藏共享操作提供程序附近的共享操作(最常用)图标?

看图.我如何隐藏图标"P",这意味着分享到Pinterest?

在此输入图像描述

它们都在操作栏上,我使用ActionBarSherlock.

android actionbarsherlock android-actionbar shareactionprovider

10
推荐指数
2
解决办法
4356
查看次数

仅在必要时在特定位置添加换行符

在我的Android布局中,我有一个TextView,它使用屏幕可用宽度的一半.在运行时,我将文本设置为(长)电子邮件地址.例如:

googleandroiddeveloper@gmail.com
Run Code Online (Sandbox Code Playgroud)

如果文本不适合一行,Android会插入换行符,这是所需的行为.但是,换行符的位置在第一个不适合该行的字符之前.结果可能是这样的:

googleandroiddeveloper@gmai
l.com
Run Code Online (Sandbox Code Playgroud)

我认为,这有点难看,特别是在电子邮件地址中.我希望换行符出现在@角色前面:

googleandroiddeveloper
@gmail.com
Run Code Online (Sandbox Code Playgroud)

当然,我可以添加一个\n在我的strings.xml.但是,电子邮件地址在每种情况下都会使用两行,即使它适合一行.

我已经认为我已经找到了在\u200B电子邮件地址中添加ZERO WIDTH SPACE()的解决方案.

<string name="email">googleandroiddeveloper\u200B@gmail.com</string>
Run Code Online (Sandbox Code Playgroud)

但除了标准空间之外,Android不会将特殊空格字符检测为可破坏空间,因此此时不会添加换行符.

由于我在应用程序的多个位置处理大量电子邮件地址,我正在寻找在@角色之前添加易碎和不可见空间的解决方案,因此如果不适合一行,Android将包装电子邮件地址.

java android android-layout android-xml

8
推荐指数
1
解决办法
1850
查看次数

Android操作栏将宽度设置为选项卡

目前我正忙着为我的公司制作一个WHMCS应用程序.作为导航,我想在操作栏中使用Tab功能.

但是,如何编辑选项卡的宽度?我需要在一个屏幕上一起使用5而无需滚动.我已经尝试过这样的一些样式:

<style name="AppBaseTheme" parent="android:Theme.Light">
</style>

<style name="AppTheme" parent="AppBaseTheme">
    <item name="@android:attr/actionBarTabStyle">@style/tab_nav</item>
    <item name="android:actionBarTabTextStyle">@style/actionBarTabTextStyle</item>
</style>

<style name="actionBarTabTextStyle" parent="android:Widget.Holo.Light.ActionBar.TabText.Inverse">
    <item name="android:padding">1dp</item>
</style>

<style name="tab_nav" parent="android:style/Widget.Holo.Light.Tab">
 <item name="android:paddingLeft">-25dp</item>
</style> 

<style name="CustomTabTextStyle" parent="@android:style/TextAppearance.Holo">
    <item name="android:textColor">#2456c2</item>
</style>
Run Code Online (Sandbox Code Playgroud)

但是,当使用较高的负值时,宽度不会是虾.

android android-actionbar android-tabs

7
推荐指数
1
解决办法
7129
查看次数

更改actionBar下拉背景颜色

在此输入图像描述

如何更改背景颜色"添加联系人"和"关于".现在它有点灰色,但我希望它是白色的!这是一个带有下拉列表的actionBar,而不是一个微调器.而且我没有使用那个actionbarsherlock的东西.

java xml android android-actionbar

4
推荐指数
1
解决办法
3625
查看次数

actionBarSherlock字幕textSize

我正在使用ActionBarSherlock字幕并尝试使用样式更改字幕文本大小,但似乎不起作用.我不熟悉主题,所以......我怎么能改变它?

提前致谢

android android-layout android-theme actionbarsherlock android-actionbar

3
推荐指数
1
解决办法
1298
查看次数

当前位置/位置的标准图标

我正在为用户的当前位置寻找有光泽的蓝色Google地图图标.我已经看到它在Android上的当前版本的Google+中的几个地方使用过: Google+截图

该图标还会显示在Google Maps Android应用程序的启动器图标上,并作为用户在地图上当前位置的指示符.

Google Maps启动器图标

不幸的是,它在Android SDK资源中不可用(虽然有"ic_maps_indicator_current_position.png",但这是一个不同的图标),我无法在网上找到它.但我认为这个图标是众所周知的 - 必须有可能在你自己的应用程序中使用它.

maps android google-maps google-maps-markers ios

2
推荐指数
1
解决办法
2876
查看次数

ActionBar之外的自定义溢出菜单

如果屏幕大小无法显示所有图标,我需要实现带菜单项的自定义溢出菜单和溢出图标.我不能使用侧滚动,因为我已经在扩展列表视图中.我无法使用顶部或底部操作栏菜单,因为操作将根据已展开的列表项而更改.

所以我想创建自己的溢出菜单 - 类似于附加的gmail截图

截图1

截图2

截图3

有任何想法吗?显然ABS可以用于此但我无法弄清楚,请帮助:)

android

2
推荐指数
1
解决办法
946
查看次数

对于TextView,可跨越文本太宽

我有一个TextView字体sans-serif-light.要链接里面的一些单词,我将文本设置为Spannable如下:

final Spannable text = new SpannableString(textView.getText());
final Matcher matcher = PATTERN_TAG.matcher(text);
while (matcher.find()) {
    text.setSpan(span, startIndex, endIndex, 0);
}
textView.setText(text);
textView.setMovementMethod(LinkMovementMethod.getInstance());
Run Code Online (Sandbox Code Playgroud)

Span我申请套字的字体sans-serif-medium是这样的:

public abstract class ClickableTagSpan extends ClickableSpan {

    @Override
    public void updateDrawState(TextPaint ds) {
        super.updateDrawState(ds);
        ds.setTypeface(Typeface.create("sans-serif-medium", Typeface.NORMAL));
    }
}
Run Code Online (Sandbox Code Playgroud)

文本在右边缘被截断

问题是文本TextView在某些行中变得太宽,因为中等字体的宽度大于原始设置的浅色字体.在TextView简单地切断与右边的文本.如何才能TextView尊重文本的正确宽度?

android textview android-layout

2
推荐指数
1
解决办法
931
查看次数