小编And*_*zie的帖子

是否有可能在android中定义XML中的常量随配置而变化

我有兴趣在Android中更改大小的XML布局,具体取决于横向或纵向查看(以及稍后可能的其他配置).

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_alignParentBottom="true"
android:background="@drawable/stream_bg_1px_wide"
android:layout_height="150dip" >
Run Code Online (Sandbox Code Playgroud)

在这个例子中,我只想根据风景或肖像改变150dip大小,而不是改变其他任何东西.

我正在使用layout和layout-land,我知道我可以在每个文件夹中重复布局,但这使得维护它的变化有点痛苦.当我根据屏幕密度和大小引入更多变体时,它会变得更糟.

所以,我想知道是否可以在XML文件中定义一个值(常量),并从我的布局中引用它,类似于如何定义颜色

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="shopper_background"> #FFFFFF</color>
</resources>
Run Code Online (Sandbox Code Playgroud)

...... ......

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <value name="footer_size" >150</value>
</resources>
Run Code Online (Sandbox Code Playgroud)

然后我可以在每个配置中复制具有不同值的文件.

谢谢你的帮助

xml layout android constants

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

如何获取脱机令牌和刷新令牌以及自动刷新对Google API的访问权限

我正在开发一个应用程序,使用OAuth2和谷歌客户端库(在Appengine和GWT BTW上)访问Google API(从Calendar API开始).

我已经实现了我的OAuth2Call后端servlet,扩展了Google AbstractAppEngineAuthorizationCodeCallbackServlet.

我有它的工作,我可以访问,可以查看日历等,但有两个问题:

1)尽管明确请求离线访问,但我没有获得刷新令牌:

public static GoogleAuthorizationCodeFlow newFlow( String scope ) throws IOException {
    GoogleAuthorizationCodeFlow.Builder builder = new GoogleAuthorizationCodeFlow.Builder(
            HTTP_TRANSPORT, 
            JSON_FACTORY,
            getClientSecrets(), 
            Collections.singleton( scope ) );

    builder.setCredentialStore( new AppEngineCredentialStore() ).setAccessType("offline");

    return builder.build();
}
Run Code Online (Sandbox Code Playgroud)

2)我看不到如何设置自动刷新功能.这些页面描述了这些方法:

但是我看不到在哪里添加刷新监听器.与GoogleAuthorizationCodeFlow.Builder课程不同,Credential.Builder课堂上没有这样的方法

编辑在更多地调试代码之后,当凭证返回时(在onSuccess()方法中)它似乎已经有一个RefreshListener集合.....所以也许这是他们的默认情况,而我唯一的问题是我没有得到refresh_token,尽管问为了它.

可能还需要在Google API控制台中查看设置吗?

java google-app-engine google-api oauth-2.0

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

如何在SeekBar中隐藏/显示拇指绘图

我有一个带有自定义drawable的SeekBar用于Thumb,我希望能够根据我拥有的另一个控件来显示/隐藏它.

我尝试从资源加载drawable,然后使用SeekBar.setThumb()和drawable,或null.

隐藏它(设置为null),但我永远无法取回它.

user-interface android

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

Android Proguard - 如何保持仅从XML布局引用的onClick处理程序

在我的Android应用程序中,我不会在代码中创建View的on-click处理程序,但依赖于在XML布局文件中指定它的能力,如下所示:

   <Button
        ....
        android:onClick="onSearchClicked"
       ...../>
Run Code Online (Sandbox Code Playgroud)

然后让Activity中的方法如下:

    public void onSearchClicked( View v ) {
    ........}
Run Code Online (Sandbox Code Playgroud)

这意味着在我自己的代码中没有明显的参考.

在为生产版本运行Proguard时,它似乎删除了此方法,并且点击失败.

我可以添加到我的proguard配置文件中以避免这种情况,这不会让我重命名所有这些方法吗?

  • 我可以添加到方法的注释,并注意到proguard?
  • 以某种方式指定从xml引用的这些类型的方法?
  • 我想我可以在代码中添加一个错误的引用,但是如果可以的话我想避免这样做,因为我不会永远记得把它放进去!

我已经查看了针对Android的proguard示例,并且看不到任何针对此特定需求的内容.

android proguard

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

使用元http-equiv标记重定向时,避免将页面添加到浏览器历史记录中

我有一个网页,使用以下方法重定向到所需的目标网址:

<meta http-equiv="refresh" content="0; URL=$destination.url" />
Run Code Online (Sandbox Code Playgroud)

我想避免浏览器历史记录中的第一页.

特别是在移动设备(Android,iOS等)中,我希望后退按钮跳过重定向页面.

html http web

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

使用功能标志"货物测试"运行其他测试

我有一些测试,我想在使用cargo test时忽略它们,并且仅在显式传递功能标志时运行.我知道这可以通过使用#[ignore]和来完成cargo test -- --ignored,但是我想因其他原因而有多组被忽略的测试.

我试过这个:

#[test]
#[cfg_attr(not(feature = "online_tests"), ignore)]
fn get_github_sample() {}
Run Code Online (Sandbox Code Playgroud)

当我cargo test按照需要运行时会忽略它,但我无法运行它.

我尝试了多种运行Cargo的方法,但测试仍然被忽略:

cargo test --features "online_tests"

cargo test --all-features
Run Code Online (Sandbox Code Playgroud)

然后我Cargo.toml根据此页面将功能定义添加到我的内容中,但它们仍会被忽略.

我在Cargo使用工作区.我尝试在两个Cargo.toml文件中添加功能定义没有区别.

testing rust rust-cargo

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

避免Android市场过滤可选使用位置

在我的应用程序中,我尝试使用位置信息(如果可用).因此我在我的清单中有这些权限:

例如

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
Run Code Online (Sandbox Code Playgroud)

注意:我没有位置,这是我所理解的用于在Android Market中过滤的标记.

当我上传到Android市场时,我收到了以下报告:

这个apk要求4个功能将用于Android Market过滤android.hardware.location.network android.hardware.location android.hardware.location.gps android.hardware.touchscreen

对我来说这表明只会出现具有location和location.network以及gps硬件的设备.

但我对位置的使用是可选的,如果它不可用,应用程序将工作.

我应该从我的清单中删除这些权限(当我尝试使用它时会出现异常吗?)?

有没有办法保留权限并避免基于它们的Android市场过滤?

android android-manifest google-play

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

如何避免Serde需要跳过序列化的字段的默认特征?

我有这个通过反序列化Serde创建的结构,我希望在其中有一个类型的字段,Url不反序列化:

#[derive(Deserialize, Debug)]
pub struct Flow {
    #[serde(skip_deserializing)]
    pub source: Url,
}
Run Code Online (Sandbox Code Playgroud)

操场

Serde抱怨Url不满足这个Default特质.我尝试过,有没有派生Default.我是我唯一能DefaultUrl自己实施这一特质的选择吗?

rust serde

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

将web-app移植到phonegap的路径问题

我认为这是一个相当标准的现有网络应用程序设置,并希望通过PhoneGap如何最好地适应它来创建本机版本,以便我们可以继续开发网络应用程序并更新phonegap从中生成了最少的返工版本.

我是PhoneGap的新手.我已经四处搜索并尝试了StackOverflow等的各种建议而没有运气,至少对我的设置而言.

该应用程序是在GWT开发的,包括:

所有应用程序的共享文件夹中的静态资源

/ static/with images,fonts,css.css定义了一些字体系列,引用/ fonts中的字体文件

我们使用绝对路径从html文件和JavaScript代码引用这些静态资源.

许多子文件夹中的静态资源(通过GWT模块FYI)

例如/ LoginGadget,它将使用GWT生成html,Javascript以及有时带有css和css-images的子文件夹.

GWT-RPC的

这些基本上是servlet,其中GWT负责序列化等,并且可以通过XHR从我们的客户端代码访问

PhoneGap Build

我已经开始考虑使用PhoneGap创建一个打包的应用程序,并遇到一些我需要建议的问题(Android示例).

我已经创建了/ assets/www并在其中放入了一个index.html文件并将其运行.我复制了一个版本的/ static /文件夹和我们的/ LoginGadget文件夹下的"root"来查看,并使用它启动它

super.loadUrl("file:///android_asset/www/index.html");
Run Code Online (Sandbox Code Playgroud)

哪个有效.

在我们所有GWT生成的html和Javascript文件中,我们使用绝对(例如"/ static/....")和相对路径(例如来自LoginGadget Javascript,它可能引用"css/some.css")引用静态资源. ).

相对路径起作用,因为它们位于引用它们的html/js所在的文件夹下.

问题1

但是,尽管PhoneGap首先说:绝对路径的引用失败了:

DroidGap: url=file:///android_asset/www/index.html baseUrl=file:///android_asset/www/
Run Code Online (Sandbox Code Playgroud)

我希望将index.html中的"/static/images/file.png"引用附加到"baseUrl"以提供file:///android_asset/www/static/images/file.png并因此工作,因为那是文件的所在.

我必须修改index.html以使用"static/image/file.png"才能工作.但我必须使用不同的配置重新编译所有GWT应用程序以修改对资源的所有引用,并且如果修改为"静态/",则将子文件夹中的其他文件引用回"/ static /"将不起作用".

如何获得"映射"到/ assets/www或类似的绝对路径引用?(见下文,我看过使用"base"标签....)

问题2

GWT RPC向服务器发出XHR请求,提供html/js.这非常有用,因为应用程序没有硬编码的主机服务器名称,并且实际上部署在许多不同的appengine appids/domains上以进行测试等.

这里的html/js文件是从file:///"服务"的,因此我需要以某种方式指定服务器.

我尝试使用所记录的"base"标记进行指定,但是我在html/js中对未指定"file://"的资源的任何引用似乎都是对"base"中指定的服务器进行的. ....因此我不再加载我的本地资源了,我基本上有一个从我的服务器提供的网络应用程序.

我想做的是,能够从我的wab-app的战争(/ static和我的所有/ GWT-Module文件夹)中取出(非常大的)经过编译和测试的应用程序,并将它们复制到/ assets/www在我的PhoneGap应用程序上,然后添加一些锅炉板或启动代码并按原样运行.

听起来像是一个很大的要求,但我认为如果我能正确指定两件事:

  • 用于作为"root"的文件路径,用于未指定http/https协议的资源请求的绝对路径(或者我已经看到的其他协议在DroidGap.java中处理)

  • 用于任何XHR请求的服务器(协议,主机名,端口)

然后一切都会在洗涤中出现!

我认为这将是一个快速的"标准"设置,已经涵盖.也许是这样,我只是遗漏了一些东西.

评论?建议?

在此先感谢您的帮助.

gwt android cordova

6
推荐指数
1
解决办法
1807
查看次数

果冻豆搜索键

在我的Android应用程序中,我使用清单中的此机制,通过我的一些活动中的搜索键启用我的特定应用搜索

    <meta-data 
        android:name="android.app.default_searchable"
        android:value=".Search.SearchActivity" />
Run Code Online (Sandbox Code Playgroud)

使用适当的搜索活动.这一切都很好,直到最近.

通过Jelly Bean更新,搜索键现在始终启动Google NOW搜索功能.

在这个网站上:http://www.android.com/about/jelly-bean/我在"Google搜索"部分找到了这个声明:

"For devices with a hardware search key, you can tap it to launch Google Search."
Run Code Online (Sandbox Code Playgroud)

谷歌是否完全接管了这一钥匙的使用权,还是有办法恢复它?

如果我无法恢复它,那么几乎所有活动中的UI设计都会发生变化,以添加搜索菜单选项或操作按钮....

android android-4.2-jelly-bean

6
推荐指数
1
解决办法
1065
查看次数