小编Oll*_*e C的帖子

如何管理ActionBar导航标签的宽度?

我正在使用ActionBarSherlock并在其中有一个带有导航标签的ActionBar.我希望选项卡根据其中文本的大小自动调整大小,但似乎某个样式或设置强制它们使用最小大小.因此,例如在屏幕截图中,"Very Long Tab"选项卡没有填充(根据我应用的样式)但标记为"T"的选项卡有很多填充,尽管我将填充设置为0dp.

在此输入图像描述

正如你在下面看到的,我通过在几种样式上设置各种属性尝试了一种蛮力的方法,但我还没有成功.

如何控制操作栏选项卡中的填充/宽度?

<style
    name="CustomActivity"
    parent="@style/Theme.Sherlock"
    >
    <item name="actionBarTabStyle">@style/customActionBarTabStyle</item>
    <item name="actionBarTabBarStyle">@style/customActionBarTabBarStyle</item>
    <item name="actionBarTabTextStyle">@style/customActionBarTabTextStyle</item>
</style>

<style name="customActionBarTabStyle" parent="style/Widget.Sherlock.ActionBar.TabView">
    <item name="android:background">@drawable/tab_indicator</item>
    <item name="android:paddingLeft">0dp</item>
    <item name="android:paddingRight">0dp</item>
    <item name="android:layout_width">wrap_content</item>
    <item name="android:minWidth">0dp</item>
</style>

<style name="customActionBarTabBarStyle" parent="style/Widget.Sherlock.ActionBar.TabBar">
    <item name="android:paddingLeft">0dp</item>
    <item name="android:paddingRight">0dp</item>
    <item name="android:layout_width">wrap_content</item>
    <item name="android:minWidth">0dp</item>
</style>

<style name="customActionBarTabTextStyle" parent="style/Widget.Sherlock.ActionBar.TabText">
    <item name="android:paddingLeft">0dp</item>
    <item name="android:paddingRight">0dp</item>
    <item name="android:layout_width">wrap_content</item>
    <item name="android:minWidth">0dp</item>
</style>
Run Code Online (Sandbox Code Playgroud)

android actionbarsherlock android-actionbar

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

Android AsyncTask在取消时不会停止,为什么?

我在Activity的onPause生命周期事件中关闭了一个AsyncTask,所以当有人离开应用程序时它不会运行,但它会继续运行,尽管如此.我添加了一些跟踪,这个片段显示了问题.

    Trace.d(TAG,"Task state: " + myTask.getStatus() );
    myTask.cancel(true);
    Trace.d(TAG,"Task state: " + myTask.getStatus() );
Run Code Online (Sandbox Code Playgroud)

输出:

Task state: RUNNING
Task state: RUNNING
Run Code Online (Sandbox Code Playgroud)

为什么cancel()方法对任务的状态没有任何影响?我注意到文档说取消方法将"尝试"停止任务,但在什么情况下会失败?该任务肯定正在运行,因为它每十秒输出一次日志输出,如上所示,其状态将返回为运行状态.

更新:我添加了跟踪以显示isCancelled()状态,并且会更改.所以取消(true)的调用是将取消状态从false更改为true,但显然对Status没有影响,或者停止线程.

android android-asynctask

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

设置WebView的宽度以包装HTML内容?

我需要一个活动来将HTML文档加载到WebView中,但是要对WebView进行大小调整,以便紧密包装HTML文档.例如,如果HTML文档包含一个大小为300x200像素的div,我希望WebView调整大小为300px x 200px以准确包含文档.

垂直WebView自然会以这种方式运行.WebView(带有wrap_content)的高度由HTML文档的高度决定,但奇怪的是不是总是填充宽度的宽度(除非为宽度指定了尺寸).即,据我所知,使用带有WebView的layout_width ="wrap_content"不起作用.

有没有办法配置WebView以这种方式调整其宽度?我看不到一个.如果HTML内容比屏幕宽度更薄,我希望WebView更薄.

如果没有,有没有办法在HTML文档模型中获取后渲染的绝对元素大小,然后我可以使用它来调整WebView宽度的大小?

为了演示,这里是将静态内容加载到WebView中的语句:

browser.loadDataWithBaseURL("/", "Hello!", "text/html", "utf-8", null);
Run Code Online (Sandbox Code Playgroud)

这是简单的布局

<?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"
    >
    <WebView
        android:id="@+id/webview"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:visibility="visible"
        />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

我希望这会在左上方展示一个横跨宽度的WebView,但它会一直延伸到整个屏幕宽度(尽管是wrap_content,内容小于宽度)

在此输入图像描述

android

15
推荐指数
1
解决办法
2674
查看次数

在Android中命名资源的最简单方法是什么?

您对资源文件和ID使用哪些命名约定以及它们带来了哪些好处?

例如,很容易得到像"activity_settings_location_text_label"这样的视图ID,但很快变得难以管理和混乱.我没有看到谷歌对此有任何指导,我是否想念它?

资源可以使用分层命名"分组",但哪种结构最适合每种资源类型?字符串,颜色,尺寸,布局,包括等等

我的命名目前是相当临时的,很明显我需要更好的结构(特别是我可以使用IDE的代码完成更容易找到ID).

android android-layout

14
推荐指数
2
解决办法
4641
查看次数

在Android应用中启用硬件加速,定位Honeycomb和先前版本

要在Android 3.0+应用中启用硬件加速,我可以这样做:

<application android:hardwareAccelerated="true" ... />
Run Code Online (Sandbox Code Playgroud)

但是,如果我的目标是11版之前的操作系统版本,应用程序将不会使用该属性构建.有没有办法在针对Honeycomb和之前的应用程序中启用硬件加速,或者硬件加速仅适用于创建仅适用于3.0+的应用程序的人员?

我在Activity上查找了一个方法,但我没有看到.

android android-3.0-honeycomb

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

将图像从Android上传到Amazon S3?

我需要将位图上传到Amazon S3.我从未使用过S3,而且文档证明不太有用,因为我看不到任何内容来涵盖这个特定的要求.不幸的是,我很难花时间在这个项目上花一整天时间学习如何将它们挂在一起,所以希望你们中的一个人能给我一些指示.

您能否指出我的参考资料来解释如何将文件推送到S3,并获得URL参考作为回报?

更具体地说: - 使用S3 Android SDK时凭据在哪里? - 我是否需要在上传文件之前创建一个存储桶,还是存在于存储桶之外? - 我使用哪种SDK方法将位图推送到S3? - 我是否正确地认为我需要CORE和S3库来做我需要的,而没有其他人?

android amazon-s3 amazon-web-services

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

如何给Android选项菜单充气并将项目设置为Enabled = false?

我的XML菜单定义将项目R.id.menu_refresh的启用状态设置为false.应用程序运行时,菜单项显示为灰色并禁用.为什么应用程序中的此代码无法启用该项?

public boolean onCreateOptionsMenu(Menu menu)
{
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.main, menu);
    MenuItem refresh = menu.getItem(R.id.menu_refresh);
    refresh.setEnabled(true);
    return true;
}
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

android

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

返回活动时如何保留Android ListView滚动位置?

可能重复:
返回ListView时保持/保存/恢复滚动位置

用户查看项目的列表视图,它们移动到显示一个项目的详细信息的活动,然后单击"返回"并返回到列表活动,但我希望列表反映其先前的滚动位置.

我应该将滚动位置存储为onPause中活动的成员变量还是有更好的方法?

android

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

透明WebView无法在Android v4.0上运行

这个问题的一些背景是在这里.它涉及解决Android中已知的错误,其中WebView背景需要透明. Android WebView样式background-color:透明在android 2.2上被忽略

它涉及WebView,托管具有透明背景的HTML文档,因此WebView是透明的,HTML文档可以覆盖到其他视图上.

将以下方法添加到WebView子类并从构造函数中调用它在Android v2,v3和v4上工作,当WebView的像素高度大于屏幕高度(例如WebView在ScrollView中)时除外,比屏幕长.)

protected void setBackgroundToTransparent() {
    this.setBackgroundColor(Color.TRANSPARENT);
    this.setBackgroundDrawable(null);
    if (Build.VERSION.SDK_INT >= 11) // Android v3.0+
        try {
         Method method = View.class.getMethod("setLayerType", int.class,  Paint.class);
         method.invoke(this, 1, new Paint());  // 1 = LAYER_TYPE_SOFTWARE (API11)
        } catch (Exception e) {}
}
Run Code Online (Sandbox Code Playgroud)

android android-webview

13
推荐指数
3
解决办法
7977
查看次数

为什么Button上的maxWidth不起作用以及如何解决它?

我在布局上有两个按钮,在大屏幕设备(平板电脑)上,我想限制它们的宽度,这样它们看起来并不荒谬.我希望使用maxWidth属性,但它在我的场景中显然没有任何作用.这是布局定义 - 按钮使用布局的整个宽度,忽略maxWidth中的任何值.

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
>
<Button
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:maxWidth="100dp"
    android:text="Button 1"
/>
<Button
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:maxWidth="100dp"
    android:text="Button 2"
/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

为什么,以及如何解决这个(显然是疯狂的)限制?

android android-layout android-button

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