我在使用Android支持设计库25时使用BottomNavigationView.但是当我切换选项卡时,其他选项卡的标题正在隐藏.但实际的底部导航视图没有隐藏问题.但我的藏匿.
但我希望它看起来像那样.有没有想过这样做?我错过了什么?
这是我的代码:
activity_main.xml中
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.yunus.ototakip.MainActivity">
<FrameLayout
android:id="@+id/main_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/bottom_navigation"
android:layout_alignParentTop="true">
</FrameLayout>
<android.support.design.widget.BottomNavigationView
android:id="@+id/bottom_navigation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
app:itemBackground="@color/colorPrimary"
app:itemIconTint="@color/beyaz"
app:itemTextColor="@color/beyaz"
app:menu="@menu/bottombar_menu" />
Run Code Online (Sandbox Code Playgroud)
bottom_bar_menu.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/bb_menu_arac"
android:enabled="true"
android:icon="@drawable/icon_car"
android:title="@string/araclarim"
app:showAsAction="ifRoom" />
<item
android:id="@+id/bb_menu_yakin"
android:enabled="true"
android:icon="@drawable/icon_yer"
android:title="@string/yakinimdakiler"
app:showAsAction="ifRoom" />
<item
android:id="@+id/bb_menu_yaklasan"
android:enabled="true"
android:icon="@drawable/icon_takvim"
android:title="@string/yaklasanlar"
app:showAsAction="ifRoom" />
<item
android:id="@+id/bb_menu_ipucu"
android:enabled="true"
android:icon="@drawable/icon_ipucu"
android:title="@string/ipuclari"
app:showAsAction="ifRoom" />
</menu>
Run Code Online (Sandbox Code Playgroud) 我想点击按钮后拍照.但是NullPointerException
当我试图URI
与之相处时我会得到FileProvider
.
这是我的ErrorCode:
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.XmlResourceParser android.content.pm.PackageItemInfo.loadXmlMetaData(android.content.pm.PackageManager, java.lang.String)' on a null object reference
at android.support.v4.content.FileProvider.parsePathStrategy(FileProvider.java:583)
at android.support.v4.content.FileProvider.getPathStrategy(FileProvider.java:557)
at android.support.v4.content.FileProvider.getUriForFile(FileProvider.java:399)
at ibas.orosol.BildActivity.takePicture(BildActivity.java:86)
at java.lang.reflect.Method.invoke(Native Method)
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288)
at android.view.View.performClick(View.java:5637)
at android.view.View$PerformClick.run(View.java:22429)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6119)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
Run Code Online (Sandbox Code Playgroud)
问题线似乎是:
mUri = FileProvider.getUriForFile(getApplication().getApplicationContext(),
"ibas.provider", file);
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
public void takePicture(View view) throws IOException {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
try{
File …
Run Code Online (Sandbox Code Playgroud) 我已经对这个主题做了一些研究,但我找不到一些我的App/Activity的解决方案.
首先,我尝试更改AndroidManifest.xml中的主题:
价值观/ styles.xml:
<style name="AppTheme.ActionBar.Transparent" parent="AppTheme">
<item name="android:windowContentOverlay">@null</item>
<item name="windowActionBarOverlay">true</item>
<item name="colorPrimary">@android:color/transparent</item>
Run Code Online (Sandbox Code Playgroud)
和
值-V21/styles.xml:
<style name="AppTheme.ActionBar.Transparent" parent="AppTheme">
<item name="colorPrimary">@android:color/transparent</item>
</style>
Run Code Online (Sandbox Code Playgroud)
但那就是结果:
所以我只得到一些浅灰色动作条,左/右侧有一些间隙.
其次,我尝试过使用fitsSystemWindow="true"
和android:background="@android:color/transparent"
我的布局,但它也没有解决问题.
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context="com.example.poweranimal.letsgo.Application.MainActivity">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/transparent">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"/>
</android.support.design.widget.AppBarLayout>
<include layout="@layout/content_main" />
</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)
但我得到了与以前相同的输出:( 2.此外,我还尝试了获取透明状态栏:
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
Run Code Online (Sandbox Code Playgroud)
和
<item name="android:statusBarColor">@android:color/transparent</item>
Run Code Online (Sandbox Code Playgroud)
但这也行不通(没有改变).
我真正想要的是这样的:
如果有人为我提供可能的解决方案,那会很酷.
提前致谢.
java android android-actionbar android-toolbar android-statusbar
我FCM
用于推送消息和处理onMessageReceived中的所有传入推送通知.现在的问题是解析嵌入在这个函数中的嵌入式jsonremoteMessage.getData()
我有以下块作为设备中的推送通知.数据有效载荷的内容可以在这里变化,这是经销商以后可以productInfo
{
"to": "/topics/DATA",
"priority": "high",
"data": {
"type": 6,
"dealerInfo": {
"dealerId": "358",
"operationCode": 2
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是我如何解析它
if(remoteMessage.getData()!=null){
JSONObject object = null;
try {
object = new JSONObject(remoteMessage.getData());
} catch (JSONException e) {
e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
现在我获取带有黑色斜杠的数据作为remoteMessage.getData()
返回,Map<String,String>
所以可能我的嵌套块正在转换为字符串,但不确定.
{
"wasTapped": false,
"dealerInfo": "{\"dealerId\":\"358\",\"operationCode\":2}",
"type": "6"
}
Run Code Online (Sandbox Code Playgroud)
如果我写,object = new JSONObject(remoteMessage.getData().toString());
那么它会因以下通知而失败
{
"to": "regid",
"priority": "high",
"notification" : {
"body": "Message Body",
"title" : "Call Status",
"click_action":"FCM_PLUGIN_ACTIVITY"
}, …
Run Code Online (Sandbox Code Playgroud) 我正在notification
用多个动作创建一个.我正在用它broadcast intents
来表达一个被推动并采取具体行动的人.有4个按钮,我创建了4个单独的意图.每个都有相同的Action字符串,但不同StringExtra
.
Intent intNow = new Intent(mThis, MyReceiver.class).setAction(actionNotify).putExtra("button", ACT_NOW);
Intent intEmail = new Intent(mThis, MyReceiver.class).setAction(actionNotify).putExtra("button", ACT_EMAIL);
Intent intLater = new Intent(mThis, MyReceiver.class).setAction(actionNotify).putExtra("button", ACT_LATER);
Intent intNever = new Intent(mThis, MyReceiver.class).setAction(actionNotify).putExtra("button", ACT_NEVER);
Notification.Builder myRatingNotification = new Notification.Builder(mThis)
.setContentTitle(title)
.setContentText(text)
.setSmallIcon(R.mipmap.ic_launcher)
.addAction(0, mThis.getString(R.string.Rate_Act_Now), PendingIntent.getBroadcast(mThis, 0, intNow, PendingIntent.FLAG_UPDATE_CURRENT))
.addAction(0, mThis.getString(R.string.Rate_App_Email), PendingIntent.getBroadcast(mThis, 0, intEmail, PendingIntent.FLAG_UPDATE_CURRENT))
.addAction(0, mThis.getString(R.string.Rate_Act_Later), PendingIntent.getBroadcast(mThis, 0, intLater, PendingIntent.FLAG_UPDATE_CURRENT))
.addAction(0, mThis.getString(R.string.Rate_Act_Never), PendingIntent.getBroadcast(mThis, 0, intNever, PendingIntent.FLAG_UPDATE_CURRENT))
.setAutoCancel(true);
Notification notification = new Notification.BigTextStyle(myRatingNotification).bigText(text).build();
((NotificationManager) mThis.getSystemService(Context.NOTIFICATION_SERVICE)).notify(notificationId, notification);
Run Code Online (Sandbox Code Playgroud)
因此,通知已成功创建.按钮在那里.但无论我推动哪一个,传递给它的额外receiver
内容始终是最后定义的动作.也就是说,在上面的例子中,每个按钮返回一个等于的字符串Extra …
嗨我想将图像设置为FloatingActionButton我这样做:
<android.support.design.widget.FloatingActionButton
android:id="@+id/qick_menu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="20dp"
android:src="@drawable/quick_menu"
app:elevation="7dp"
app:layout_anchor="@id/mapview"
app:layout_anchorGravity="bottom|right|end" />
Run Code Online (Sandbox Code Playgroud)
但我的按钮中有一个小图像
我正在Google工程师从Udacity.com学习Android应用开发,他们说,
“使用' AsyncTask
' 不是一个好主意,因为它没有附加到activity
生命周期中。activity
只要Asynctask
Android在运行该虚拟机,它就会一直保留在该对象上,即使Android已为该活动调用onDestroy()方法并且希望将其丢弃。
如果旋转手机,则其行为是破坏当前活动并实例化一个新活动。AsyncTask
现在,幼稚的实现有两个threads
尝试执行相同的更新。因此,对于可能需要很长时间运行的后台操作(例如从Web服务中获取),这不是最佳的模式。如果您离开该应用程序,则asyncTask
只要进程保持活动状态,它就会运行,但是将以较低的优先级运行,如果设备需要更多资源,则您的进程将是第一个被杀死的事物。”
1)如果使用AsyncTask
不利,为什么要创建它?尽管拥有服务(或实现类似功能的类似服务),设计哲学还是创建它的原因是什么?
2)Asynctask
与Android中可用的服务/类似选项相比,应该在哪些情况下进行改进?
3)在哪些情况/场所Asynctask
不应该使用?
请不要反对这个问题。我搜索了Stackoverflow,但找不到类似的问题。
java android virtual-machine android-service android-asynctask
我正在尝试向我的 listView 提供数据,当单击 FAB 时,它会显示一个带有一个 editText 和两个按钮的对话框。第一次它允许我向 ListView 提供数据。但是当我第二次尝试时,它显示了错误:
致命异常:主要
过程:com.example.app.wounderlist.wounderlist,PID:3790
java.lang.IllegalStateException:在 指定的 孩子 已经 有 一个 父。您 必须 在孩子的父母上调用 removeView() 首先。 在 android.view.ViewGroup.addViewInner(ViewGroup.java:3562) 在 android.view.ViewGroup.addView(ViewGroup.java:3415) 在 android.view.ViewGroup.addView(ViewGroup.java:3391) 在 android.support。 v7.app.AlertController.setupCustomContent(AlertController.java:647) 在 android.support.v7.app.AlertController.setupView(AlertController.java:463) 在 android.support.v7.app.AlertController.installContent(AlertController.java:226) 在 android.support.v7.app.AlertDialog.onCreate(AlertDialog.java:257) 在 android.app.Dialog.dispatchOnCreate(Dialog .java:361) 在 android.app.Dialog.show(Dialog.java:262) 在 com.example.app.wounderlist.wounderlist.HomeFragment$1.onClick(HomeFragment.java:79) 在 android.view.View.performClick(View.java:4444) 在 android.view.View$PerformClick.run(View.java:18457) 在 android.os.Handler.handleCallback(Handler.java:733) 在android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread。main(ActivityThread.java:5113) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$ MethodAndArgsCaller.run(ZygoteInit.java:796) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:612) at dalvik.system.NativeStart.main(Native Method)5113) 在 java.lang.reflect.Method.invokeNative(Native Method) 在 java.lang.reflect.Method.invoke(Method.java:515) …
我目前正在开发一个电子邮件应用程序,它依赖于背景service
以便能够自动获取新电子邮件。当应用程序打开(或在应用程序的运行列表中)时,此功能完美运行,但一旦我关闭应用程序/将其从最近的应用程序列表中删除,它service
也会停止。可以通过进入设备上的“开发人员设置”并查看没有为我的应用程序运行的进程或服务来确认这一点。
我在 StackOverflow 上读过无数的帖子,但似乎没有一个能成功。有时onTaskRemoved
() 被调用并且服务被重新启动,但其他时候它根本没有被调用或者被调用,日志显示操作系统已安排重新启动,但service
随后由操作系统service
获取forced closed
,而我总是需要运行此服务以检索新电子邮件。
我当前的代码如下所示:
我的服务:
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
super.onStartCommand(intent, flags, startId);
Log.i(TAG, "onStartCommand()");
...
Log.d(TAG, "SERVICE IS RUNNING");
if (host != null) {
Log.d(TAG, "STARTING PUSH SERVICE");
Handler handler = new Handler();
Runnable runnable = new Runnable() {
@Override
public void run() {
Log.d(TAG, "BR: " + ((BugReporting) getApplication())); …
Run Code Online (Sandbox Code Playgroud) java service android background-service long-running-processes
另外,appbar布局和折叠工具栏布局之间有什么区别?
非常感谢 :)
android android-layout android-collapsingtoolbarlayout android-appbarlayout