小编amo*_*the的帖子

在选定的底部导航视图项上重新创建片段

以下是我选择的底部导航视图项的代码

bottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {  
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
    Fragment fragment = null;
    switch (item.getItemId()) {
        case R.id.action_one:
            // Switch to page one
            fragment = FragmentA.newInstance();
            break;
        case R.id.action_two:
            // Switch to page two
            fragment = FragmentB.newInstance();
            break;
        case R.id.action_three:
            // Switch to page three
            fragment = FragmentC.newInstance();
            break;
    }
    getSupportFragmentManager().beginTransaction().replace(R.id.container,fragment,"TAG").commit();
    return true;
}
});
Run Code Online (Sandbox Code Playgroud)

现在我的问题是每次重新创建片段并且不希望每次我都尝试添加addToBackStack(null)时重新创建片段,但是这种情况在后面按钮按下时会不断地从堆栈中弹出片段,这是我不想要的.

有没有办法在选定的底部导航栏上显示片段而无需重新创建片段

android android-fragments android-support-library bottomnavigationview

43
推荐指数
7
解决办法
3万
查看次数

无法使用firebase控制台发送数据消息

我正在使用firebase控制台,并且只能使用它发送通知消息.

有没有办法使用相同的方式发送数据消息?

android firebase firebase-cloud-messaging firebase-console

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

commitAllowingStateLoss()和commit()片段

我想在网络后台操作后提交一个片段.我在成功进行网络操作后调用了commit(),但是如果活动进入暂停或停止状态,则崩溃应用程序说IllegalState异常.

所以我尝试使用commitAllowingStateLoss()并且它现在正常工作.

我浏览了一些博客和文章,它说commitAllowingStateLoss()不好用.

什么是在网络操作处理活动暂停和停止状态后处理提交片段的方法?

android android-fragments android-support-library

18
推荐指数
2
解决办法
6472
查看次数

将本机android部署文件反应到服务器

我是React Native的新手我想知道如何在服务器上部署反应本机部分或代码(如javascript文件和资源)然后使用它.

目前它显示为localhost

请告诉我如何在服务器上部署它也是可能的.

每当我更改代码中的某些内容时,是否需要更新Play商店中的应用程序?

什么样的代码推送做什么,有什么方法可以从服务器加载我的反应本机包并动态更新应用程序

javascript android react-native react-native-android react-native-code-push

18
推荐指数
3
解决办法
300
查看次数

即使单击确定,LocationSettingsRequest也会向onActivityResult返回0

我正在使用以下代码来显示弹出窗口以打开位置

        LocationSettingsRequest.Builder builder = new LocationSettingsRequest.Builder()
            .addLocationRequest(mLocationRequest);
    SettingsClient client = LocationServices.getSettingsClient(getActivity());
    Task<LocationSettingsResponse> task = client.checkLocationSettings(builder.build());

    task.addOnSuccessListener(getActivity(), new OnSuccessListener<LocationSettingsResponse>() {
        @Override
        public void onSuccess(LocationSettingsResponse locationSettingsResponse) {
            // All location settings are satisfied. The client can initialize
            // location requests here.
            // ...
            getUserLocation();
        }
    });

    task.addOnFailureListener(getActivity(), new OnFailureListener() {
        @Override
        public void onFailure(@NonNull Exception e) {
            int statusCode = ((ApiException) e).getStatusCode();
            Log.d("AMOD", "onFailure " + statusCode);
            switch (statusCode) {
                case CommonStatusCodes.RESOLUTION_REQUIRED:
                    // Location settings are not satisfied, but this can be …
Run Code Online (Sandbox Code Playgroud)

android android-location android-support-library google-play-services onactivityresult

17
推荐指数
1
解决办法
541
查看次数

Android为片段设置透明背景

在我的应用程序中,我有单个活动和所有其他片段

我正在设置style.xml的活动背景,如下所示

<item name="android:windowBackground">@color/very_light_gray</item>
Run Code Online (Sandbox Code Playgroud)

现在只有一个特殊的片段,我想设置背景透明,我无法做到尝试下面的片段代码片段对我来说不起作用

  @Override
 public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

// create ContextThemeWrapper from the original Activity Context with the custom theme
final Context contextThemeWrapper = new ContextThemeWrapper(getActivity(), R.style.yourCustomTheme);

// clone the inflater using the ContextThemeWrapper
LayoutInflater localInflater = inflater.cloneInContext(contextThemeWrapper);

// inflate the layout using the cloned inflater, not default inflater
return localInflater.inflate(R.layout.yourLayout, container, false);
}
Run Code Online (Sandbox Code Playgroud)

知道怎么做吗?

android android-theme android-fragments android-activity android-support-library

13
推荐指数
2
解决办法
7455
查看次数

BottomNavigationView禁用移位模式而不使用反射

在此输入图像描述

BottomNavigationView不允许禁用shift模式在新版本的支持库中修复此问题?

还有一些使用反射机制的解决方案我不认为它的正确方法是解决这个主要问题.

所有准备好看到这个解决方案不想使用它

android android-support-library androiddesignsupport bottomnavigationview

10
推荐指数
1
解决办法
3694
查看次数

由于Admob广告,Recyclerview在滚动上滞后

我想在RecyclerView广告中加载广告已成功加载,但在滚动时会出现这么多延迟

以下是我在Adapter的OnBindViewHolder方法中编写的代码

如何解决这个滞后?

((DealHolder) holder).adcardView.post(new Runnable() {
                @Override
                public void run() {
                    final NativeExpressAdView adView = new NativeExpressAdView(((DealHolder) holder).itemView.getContext());
                    final int adWidth = ((DealHolder) holder).adcardView.getWidth() - ((DealHolder) holder).adcardView.getPaddingLeft()
                            - ((DealHolder) holder).adcardView.getPaddingRight();
                    final int adHeight = ((DealHolder) holder).adcardView.getHeight() - ((DealHolder) holder).adcardView.getPaddingBottom()
                            - ((DealHolder) holder).adcardView.getPaddingTop();
                    final float scale = ((DealHolder) holder).adcardView.getResources().getDisplayMetrics().density;
                    AdSize adSize = new AdSize((int) (adWidth / scale), (int) (adHeight / scale));
                    adView.setAdSize(adSize);
                    adView.setAdUnitId(((DealHolder) holder).adcardView.getContext().getString(R.string.test_adunit_id));
                    AdRequest request = new AdRequest.Builder().addTestDevice("jjhjhbjhjhjhjhjhjhjh").build();
                    adView.loadAd(request);
                    adView.setAdListener(new AdListener() {
                        @Override
                        public void onAdLoaded() { …
Run Code Online (Sandbox Code Playgroud)

android admob android-cardview recycler-adapter android-recyclerview

10
推荐指数
1
解决办法
2247
查看次数

Android在Google Analytics中创建自定义维度

我想在android中使用谷歌分析设置用户级自定义变量我可以看到这里缺少文档和演示我想知道如何使用GA设置自定义变量我指的是以下链接

https://support.google.com/analytics/answer/2709828#scope

但它没有帮助在它给出的所有代码不是在java和非常混乱如果任何人有适当的样本相关的请分享

目前尚不清楚在GA仪表板上反映这些变化需要多长时间才能使用谷歌分析.

还有一个代码示例

// Get tracker.
Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker(
TrackerName.APP_TRACKER);
t.setScreenName("Home Screen");

// Send the custom dimension value with a screen view.
// Note that the value only needs to be sent once.
t.send(new HitBuilders.ScreenViewBuilder()
    .setCustomDimension(1, "premiumUser")
    .build()
);
Run Code Online (Sandbox Code Playgroud)

现在任何人都可以解释什么是值1代表什么,它来自上面调用的位置以及为什么我需要调用setScreenName

我也在下面提到了链接,但没有给出任何明确的想法

https://support.google.com/analytics/answer/2709829?hl=en&ref_topic=2709827

此外,我尝试创建自定义变量,我观察到一个自定义变量人口统计已经存在,我猜它是由GA默认创建的,所以现在我的自定义变量将以索引2或1开始,这也是一个混乱.

android google-analytics

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

嵌套的recylerview滞后,而前几个滚动,然后顺利滚动?

我正在使用嵌套的RecyclerView.在垂直RecyclerView内的手段我有多个水平回收视图

我将适配器附加到父RecyclerView的onBindViewHolder方法内的水平recylerviews,如下所示.

@Override
public void onBindViewHolder(final MainViewHolder holder, final int position) {
    switch (holder.getItemViewType()) {
        case TYPE_PRODUCT:
            ((ListHolderProduct) holder).itemTitle.setText(browseCategoryHomePageItems.get(position).displayName.toUpperCase());
            ((ListHolderProduct) holder).recyclerView.setAdapter(new CarouselProductsRecyclerAdapter(context
                    , browseCategoryHomePageItems.get(position).products
                    , R.layout.activity_categoryhome_products_grid_item
                    , nestedRecyclerItemClickedListener
                    , position));
            break;
        case TYPE_DEAL:
            ((ListHolderDeal) holder).itemTitle.setText(browseCategoryHomePageItems.get(position).displayName.toUpperCase());
            ((ListHolderDeal) holder).recyclerView.setAdapter(new CarouselDealsRecyclerAdapter(context
                    , browseCategoryHomePageItems.get(position).dealItems
                    , R.layout.activity_categoryhome_deals_grid_item
                    , nestedRecyclerItemClickedListener
                    , position));
            break;
            //few more types like this
    }
}
Run Code Online (Sandbox Code Playgroud)

现在每当我滚动页面时,由于我将适配器连接到OnBindViewHolder上的水平RecyclerView,所以它有点滞后

并且可以有N个TYPE_PRODUCT或任何类型的水平列表.意味着可以存在多个相同类型的水平列表.

知道如何优化这个东西并提高滚动速度.

它是滞后的,因为之前每次为列表调用setAdapter.

更新我正在扩展LinearLayoutManager,并在我设置extraLayout空间已修复我的问题但我不知道这是正确的方式我是设置额外的空间如下.

 layoutManager.setExtraLayoutSpace(2 * this.getResources().getDisplayMetrics().heightPixels);
Run Code Online (Sandbox Code Playgroud)

而follwoing是自定义布局管理器类

public class PreCachingLayoutManager extends LinearLayoutManager {
private static final int DEFAULT_EXTRA_LAYOUT_SPACE = 600;
private int extraLayoutSpace = …
Run Code Online (Sandbox Code Playgroud)

performance android adapter android-viewholder android-recyclerview

7
推荐指数
2
解决办法
3249
查看次数