小编raf*_*007的帖子

具有3个以上项目的BottomNavigationView:选项卡标题正在隐藏

我在使用Android支持设计库25时使用BottomNavigationView.但是当我切换选项卡时,其他选项卡的标题正在隐藏.但实际的底部导航视图没有隐藏问题.但我的藏匿.

MyBottomNavigation

但我希望它看起来像那样.有没有想过这样做?我错过了什么?

ActualBottomNavigation

这是我的代码:

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)

android bottombar

68
推荐指数
5
解决办法
4万
查看次数

尝试使用FileProvider(Android)获取URI时出现NullPointerException

我想点击按钮后拍照.但是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)

android uri image nullpointerexception android-intent

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

透明动作栏和优步等状态栏

我已经对这个主题做了一些研究,但我找不到一些我的App/Activity的解决方案.

  1. 我试图获得一个透明的操作栏.

首先,我尝试更改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

15
推荐指数
2
解决办法
6660
查看次数

如何解析Android中的Json数据for Firebase Cloud Messaging(FCM)

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)

android json firebase firebase-cloud-messaging

12
推荐指数
2
解决办法
7444
查看次数

Android通知操作 - Intent Extra未按预期工作

我正在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 …

android android-intent android-notifications

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

Android浮动操作按钮:调整内部图标大小

在此输入图像描述

嗨我想将图像设置为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)

但我的按钮中有一个小图像

java android

6
推荐指数
2
解决办法
6430
查看次数

Android框架中AsyncTask的优缺点是什么?

我正在Google工程师从Udacity.com学习Android应用开发,他们说,

“使用' AsyncTask' 不是一个好主意,因为它没有附加到activity生命周期中。activity只要AsynctaskAndroid在运行该虚拟机,它就会一直保留在该对象上,即使Android已为该活动调用onDestroy()方法并且希望将其丢弃。

如果旋转手机,则其行为是破坏当前活动并实例化一个新活动。AsyncTask现在,幼稚的实现有两个threads尝试执行相同的更新。因此,对于可能需要很长时间运行的后台操作(例如从Web服务中获取),这不是最佳的模式。如果您离开该应用程序,则asyncTask只要进程保持活动状态,它就会运行,但是将以较低的优先级运行,如果设备需要更多资源,则您的进程将是第一个被杀死的事物。”

1)如果使用AsyncTask不利,为什么要创建它?尽管拥有服务(或实现类似功能的类似服务),设计哲学还是创建它的原因是什么?

2)Asynctask与Android中可用的服务/类似选项相比,应该在哪些情况下进行改进?

3)在哪些情况/场所Asynctask不应该使用?

请不要反对这个问题。我搜索了Stackoverflow,但找不到类似的问题。

java android virtual-machine android-service android-asynctask

5
推荐指数
1
解决办法
5793
查看次数

Android Dialog 错误指定的子项已经有一个父项。您必须先在孩子的父母上调用 removeView()

我正在尝试向我的 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) …

java android listview android-layout

5
推荐指数
1
解决办法
1720
查看次数

Android 在应用程序关闭后正确重启服务

我目前正在开发一个电子邮件应用程序,它依赖于背景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

5
推荐指数
1
解决办法
4109
查看次数

5
推荐指数
1
解决办法
1809
查看次数