我希望你能解决我的问题.我试图谷歌它,并在这里查看主题,但无法找到答案.
我最近改变了我的布局ConstraintLayouts
,到目前为止一直很好用.然而我的问题是我有一些DialogFragments
显示a LinearLayout
,当我改变它时ConstraintLayout
我只显示一个褪色的叠加层,但布局中没有元素.如果我将宽度和高度硬编码为类似的东西100dp
,它将显示该区域.当我尝试match_parent
或任何其他组合时,同样的问题适用.我也尝试将高度和宽度设置为设备的高度和宽度,但仍然没有运气.
在我的CreateWeddingMetadataFragment中的onCreateView中,我有:
createButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.d(TAG, "Show message dialog");
FragmentManager fm = getFragmentManager();
CreateWeddingMetadataDialogFragment welcomeMessageDialog = new CreateWeddingMetadataDialogFragment();
welcomeMessageDialog.show(fm, "metadate_fragment_dialog");
welcomeMessageDialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
}
});
Run Code Online (Sandbox Code Playgroud)
在我的CreateWeddingMetadataFragmentDialog中,我有:
public class CreateWeddingMetadataDialogFragment extends DialogFragment{
private static final String TAG = CreateWeddingMetadataDialogFragment.class.getSimpleName();
public Button setupNow, setupLater;
public TextView mTest;
public ConstraintLayout parentLayout;
private DialogInterface.OnDismissListener onDismissListener;
public void setOnDismissListener(DialogInterface.OnDismissListener onDismissListener) …
Run Code Online (Sandbox Code Playgroud) startForground
Service 类中方法中的 id 参数是什么。我通过谷歌搜索单个 Notification 找到了答案。这家伙如何找到 id ?对此的任何列表或参考。如果我想显示多个通知(如 facebook)怎么办。那么我如何定义 id 呢?
notification.flags = Notification.FLAG_NO_CLEAR;
startForeground(1337, notification);
Run Code Online (Sandbox Code Playgroud) 我是设备管理员应用程序,我想通过手动安装更新.问题是当应用程序处于管理员模式时我没有得到安装弹出由android生成安装apk但当取消固定或删除应用程序作为设备管理员我是获得安装对话框.我接近了两种方法
第一种方法:使用intent安装apk
Intent intentInstall = new Intent(Intent.ACTION_VIEW);
intentInstall.setDataAndType(Uri.fromFile(new File(Constants.UPDATE_APK_PATH)), "application/vnd.android.package-archive");
intentInstall.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); // without this flag android returned a intent error!
AppApplication.getContext().startActivity(intentInstall);
Run Code Online (Sandbox Code Playgroud)
仅当app未设置为设备管理员时,此方法才有效
第二种方法:使用PackageManger进行无提示安装
PackageManager packageManger = mContext.getPackageManager();
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {
PackageInstaller packageInstaller = packageManger.getPackageInstaller();
String packageName = mContext.getPackageName();
PackageInstaller.SessionParams params = new PackageInstaller.SessionParams(
PackageInstaller.SessionParams.MODE_FULL_INSTALL);
params.setAppPackageName(packageName);
try {
int sessionId = packageInstaller.createSession(params);
PackageInstaller.Session session = packageInstaller.openSession(sessionId);
OutputStream out = session.openWrite(packageName + ".apk", 0, -1);
readTo(Constants.UPDATE_APK_PATH, out); //read the apk content and write it to out …
Run Code Online (Sandbox Code Playgroud) 在我使用时debounce()
,然后从后端获取数据并将数据转换为另一个数据并最后使用toList()
.当我正在使用toList()
时没有任何事情发生没有任何日志没有订阅和错误,没有toList()
它的工作和subscribe()
方法进入尽可能多的我有书的清单,我测试了它的第二部分代码它没有debounce()
公正getItems()
和使用toList()
它工作.下面是我的代码与第一部分debounce()
和itList()
它不工作,第二个具有toList()
哪些工作
public Flowable<List<Book>> getItems(String query) {}
textChangeSubscriber
.debounce(300, TimeUnit.MILLISECONDS)
.observeOn(Schedulers.computation())
.switchMap(s -> getItems(s).toObservable())
.flatMapIterable(items -> items)
.map(Book::convert)
.toList()
.observeOn(AndroidSchedulers.mainThread())
.subscribe(books -> {
Log.i("test", "" + books.toString());
}, error -> {
Log.i("test", "" + error);
});
getItems(query).flatMapIterable(items -> items)
.map(Book::convert)
.toList()
.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(Schedulers.io())
.subscribe(books -> {
Log.i("test", "" + "" + books.toString());
}, error -> {
Log.i("test", "" + …
Run Code Online (Sandbox Code Playgroud) 我使用的是Android Studio 2.0稳定版.每当我点击设备上的播放按钮运行它就会显示在android studio中启动AVD进度,并且在完成它之后没有任何进展.应用程序窗口仍然如屏幕截图所示,模拟器无法启动.我找不到解决这个问题的方法.我已经尝试了很多我在互联网上找到的解决方案,更改了HAXM版本的android SDK更新,更改了目标API.但没有任何作用.
android emulation android-emulator android-studio android-studio-2.0
在我的Android应用程序中,我希望在我的应用程序服务被杀死时通过推送通知启动我的服务.这是针对以下版本(最多Nougat-7.1.1)完成的.但问题是:在奥利奥版本中,它不起作用.
我按照以下链接为oreo版本创建了频道ID:https:
//developer.android.com/guide/topics/ui/notifiers/notifications.html
最初启动应用程序时(启动应用程序后,我关闭了我的应用程序并停止了自助()服务).我再次尝试将推送通知从第三方服务器发送到设备,未收到通知(onMessageReceive()方法未调用).在这种情况下,第三方服务器成功发送了推送通知.
如何解决这个问题?提前致谢!
我的build.gradle是:
android {
compileSdkVersion 27
buildToolsVersion '26.0.2'
defaultConfig {
minSdkVersion 18
targetSdkVersion 27
multiDexEnabled true
versionCode 1
versionName "1.0.9"
ndk {
abiFilters "armeabi", "armeabi-v7a", "x86", "mips"
}
}
}
Run Code Online (Sandbox Code Playgroud) 首先,我正在尝试很多我在这里找到的例子,但任何事都适合我.
目前,我只能更改动作模式的颜色背景,但不能更改文本颜色和图标的颜色以便返回
一些帮助将不胜感激!
这就是我正在尝试的:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
<item name="windowActionModeOverlay">true</item>
<item name="actionModeStyle">@style/Style.ActionMode</item>
</style>
<!-- *************************** Custom ActionMode Bar **************************************-->
<style name="Style.ActionMode" parent="@style/Widget.AppCompat.ActionMode">
<item name="background">@color/color_action_mode_bg</item>
<item name="android:backgroundSplit">?android:attr/actionModeSplitBackground</item>
<item name="android:height">?android:attr/actionBarSize</item>
<item name="android:titleTextStyle">@style/Stl.TitleTextStyle</item>
</style>
<style name="Stl.TitleTextStyle" parent="@style/Widget.AppCompat.ActionMode">
<item name="android:textColor">@color/colorPrimary</item>
</style>
Run Code Online (Sandbox Code Playgroud) 我正在使用Firebase主题发送通知.这样做时我遇到了Firebase通知控制台,该控制台显示(topic-name)<1000 estimated user
选择通过主题发送通知
我已阅读本POST.它说Firebase
可以创造无限的topics.But我的问题是,用户有多少最大数量可以订阅一个话题,因为在控制台它显示(topic-name)<1000 estimated user
和火力地堡没有在文档描述关于最大限制用户订阅的任何东西个别话题.
如果它对单个主题订阅有1000个用户的限制,而不是当app激发此用户限制时会发生的情况.它会向前1000个用户发送通知,它将不会发送通知吗?
我已经在Android架构组件上工作了一段时间,这是在Google IO 2017中引入的
他们的一个组件是为了避免配置更改它们提供的问题ViewModel
和AndroidViewModel
类
根据文件:
AndroidViewModel:应用程序上下文感知ViewModel
ViewModel:ViewModels也可以用作Activity的不同片段之间的通信层.每个片段可以ViewModel
通过其Activity 获取使用相同的键
但是对于AndoirdViewModel
场景,我可以通过将类扩展到Application类来获取应用程序上下文
Android开发中它们之间的实际区别是什么?因为两者仅附加到Activity/Fragment生命周期.
java android android-lifecycle android-architecture-components
我想设计一个圆角的TextView
和。EditText
对于这个问题有一个直接的解决方案。使用自定义形状背景。但由于 Material Design 1.1.0 引入了shapeAppearance
主题属性,可以将不同的形状应用于角,这对于所有 Material 组件(如MaterialButton
、BottomSheet
、MaterialCardView
等)都适用。但它不适用于EditText
和TextView
。我MaterialTextView
也尝试使用,但没有成功。这也是我设置风格的方式也EditText
类似TextView
。
<style name="ThemeOverlay.Chat" parent="AppTheme">
<item name="editTextStyle">@style/Overlay.Chat.EditText</item>
</style>
<style name="Overlay.Chat.EditText" parent="Widget.AppCompat.EditText">
<item name="shapeAppearanceOverlay">@style/ShapeAppearance.Overlay.FullRound</item>
</style>
<style name="ShapeAppearance.Overlay.FullRound" parent="ShapeAppearance.MaterialComponents.LargeComponent">
<item name="cornerSize">50dp</item>
</style>
Run Code Online (Sandbox Code Playgroud) android android-theme android-edittext android-styles material-components-android
android ×10
firebase ×2
android-architecture-components ×1
apk ×1
device-admin ×1
emulation ×1
java ×1
material-components-android ×1
rx-android ×1
rx-java ×1
service ×1