我有兴趣在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)
然后我可以在每个配置中复制具有不同值的文件.
谢谢你的帮助
我正在开发一个应用程序,使用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控制台中查看设置吗?
我有一个带有自定义drawable的SeekBar用于Thumb,我希望能够根据我拥有的另一个控件来显示/隐藏它.
我尝试从资源加载drawable,然后使用SeekBar.setThumb()和drawable,或null.
隐藏它(设置为null),但我永远无法取回它.
在我的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配置文件中以避免这种情况,这不会让我重命名所有这些方法吗?
我已经查看了针对Android的proguard示例,并且看不到任何针对此特定需求的内容.
我有一个网页,使用以下方法重定向到所需的目标网址:
<meta http-equiv="refresh" content="0; URL=$destination.url" />
Run Code Online (Sandbox Code Playgroud)
我想避免浏览器历史记录中的第一页.
特别是在移动设备(Android,iOS等)中,我希望后退按钮跳过重定向页面.
我有一些测试,我想在使用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文件中添加功能定义没有区别.
在我的应用程序中,我尝试使用位置信息(如果可用).因此我在我的清单中有这些权限:
例如
<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市场过滤?
我有这个通过反序列化Serde创建的结构,我希望在其中有一个类型的字段,Url不反序列化:
#[derive(Deserialize, Debug)]
pub struct Flow {
#[serde(skip_deserializing)]
pub source: Url,
}
Run Code Online (Sandbox Code Playgroud)
Serde抱怨Url不满足这个Default特质.我尝试过,有没有派生Default.我是我唯一能Default为Url自己实施这一特质的选择吗?
我认为这是一个相当标准的现有网络应用程序设置,并希望通过PhoneGap如何最好地适应它来创建本机版本,以便我们可以继续开发网络应用程序并更新phonegap从中生成了最少的返工版本.
我是PhoneGap的新手.我已经四处搜索并尝试了StackOverflow等的各种建议而没有运气,至少对我的设置而言.
该应用程序是在GWT开发的,包括:
/ static/with images,fonts,css.css定义了一些字体系列,引用/ fonts中的字体文件
我们使用绝对路径从html文件和JavaScript代码引用这些静态资源.
例如/ LoginGadget,它将使用GWT生成html,Javascript以及有时带有css和css-images的子文件夹.
这些基本上是servlet,其中GWT负责序列化等,并且可以通过XHR从我们的客户端代码访问
我已经开始考虑使用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所在的文件夹下.
但是,尽管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"标签....)
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请求的服务器(协议,主机名,端口)
然后一切都会在洗涤中出现!
我认为这将是一个快速的"标准"设置,已经涵盖.也许是这样,我只是遗漏了一些东西.
评论?建议?
在此先感谢您的帮助.
在我的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设计都会发生变化,以添加搜索菜单选项或操作按钮....