标签: android

材料TabLayout高程不起作用

由于某种原因,高程属性似乎不适用于材料设计支持库中的新TabLayout.有任何想法吗?XML:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

<android.support.design.widget.TabLayout
    android:id="@+id/tab_layout"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:elevation="6dp" />

<android.support.v4.view.ViewPager
    android:id="@+id/view_pager"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

在父片段中像这样连接:

ViewPager viewPager = (ViewPager) view.findViewById(R.id.view_pager);
TabLayout tabLayout = (TabLayout) view.findViewById(R.id.tab_layout);
AppPagerAdapter appPagerAdapter = new AppPagerAdapter(getChildFragmentManager());
viewPager.setAdapter(appPagerAdapter);
tabLayout.setupWithViewPager(viewPager);
Run Code Online (Sandbox Code Playgroud)

图片: 相关图片

活动有一个工具栏,但这不在片段之外,不应影响tablayout有阴影的能力:

相关活动xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.bluckapps.appinfomanager.ui.MainActivity">

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="?attr/colorPrimary"
    android:elevation="6dp"
    android:minHeight="?attr/actionBarSize"
    tools:ignore="UnusedAttribute" />

<FrameLayout
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1" />

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

android material-design android-elevation

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

如何在Google Play等标签中启用水平滚动?

我在这里引用一个关于材料设计的精彩演示.它有标签,但是当我添加太多标签项时会被压扁(见截图).如何让它水平滚动?

在此输入图像描述

我相信下面是我应该做出改变的布局,但我梳理了文档并且似乎无法得到它,请帮忙!

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/main_content"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.design.widget.AppBarLayout
        android:id="@+id/appbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary"
            app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
            app:layout_scrollFlags="scroll|enterAlways" />

        <android.support.design.widget.TabLayout
            android:id="@+id/tabs"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />

    </android.support.design.widget.AppBarLayout>

    <android.support.v4.view.ViewPager
        android:id="@+id/viewpager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior" />

    <android.support.design.widget.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="end|bottom"
        android:layout_margin="@dimen/fab_margin"
        android:src="@drawable/ic_done" />

</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)

android material-design android-design-library android-support-design

35
推荐指数
2
解决办法
3万
查看次数

android studio auto complete:如何显示带参数的构造函数

eclipse中的auto complete显示所有带参数的构造函数,但Android studio却没有.

例如,在eclipse中查看以下屏幕截图,它显示了Intent类的所有构造函数.

在此输入图像描述

虽然Android工作室中为Intent类自动完成但没有参数如下所示.

在此输入图像描述

如何在android studio中更改自动完成以显示所有带参数的构造函数?

java eclipse android android-studio

35
推荐指数
3
解决办法
2万
查看次数

Android - 轻扫以删除RecyclerView

我正在尝试实施滑动以删除与Gmail应用"滑动到存档"相同的内容:

gmail滑动删除 gmail滑动删除

我已经尝试了很多教程,但没有一个像gmail一样快,我更喜欢不在外部库上工作.我该怎么做?

编辑:

我的代码到目前为止 -

  ItemTouchHelper.SimpleCallback simpleItemTouchCallback = new ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT) {
                public boolean onMove(RecyclerView recyclerView,
                                               RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {
//                    final int fromPos = viewHolder.getAdapterPosition();
//                    final int toPos = viewHolder.getAdapterPosition();
//                    // move item in `fromPos` to `toPos` in adapter.
                    return true;// true if moved, false otherwise
                }

            @Override
            public void onSwiped(RecyclerView.ViewHolder viewHolder, int swipeDir) {
                //Remove swiped item from list and notify the RecyclerView
                mAdapter.notifyItemRemoved(viewHolder.getLayoutPosition());
            }
        };
        ItemTouchHelper itemTouchHelper = new ItemTouchHelper(simpleItemTouchCallback);
        itemTouchHelper.attachToRecyclerView(mRecyclerView);
Run Code Online (Sandbox Code Playgroud)

我已设法启用滑动手势,但 …

android android-recyclerview

35
推荐指数
3
解决办法
5万
查看次数

致命异常:主要java.lang.NoClassDefFoundError:android.support.v7.internal.widget.TintManager

我正在运行我的项目时遇到错误.我只是按照本教程并在我的项目中使用它.

我的代码在教程中完全相同

public class MainEventActivity extends AppCompatActivity {

private Toolbar toolbar;
private TabLayout tabLayout;
private ViewPager viewPager;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main_event_activity);

    toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    getSupportActionBar().setDisplayHomeAsUpEnabled(true);

    viewPager = (ViewPager) findViewById(R.id.viewpager);
    setupViewPager(viewPager);

    tabLayout = (TabLayout) findViewById(R.id.tabs);
    tabLayout.setupWithViewPager(viewPager);
}

private void setupViewPager(ViewPager viewPager) {
    ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
    adapter.addFragment(new OneFragment(), "ONE");
    adapter.addFragment(new TwoFragment(), "TWO");
    adapter.addFragment(new ThreeFragment(), "THREE");
    viewPager.setAdapter(adapter);
}

class ViewPagerAdapter extends FragmentPagerAdapter {
    private final List<Fragment> mFragmentList = new ArrayList<>();
    private final List<String> …
Run Code Online (Sandbox Code Playgroud)

android android-intent android-fragments android-activity

35
推荐指数
1
解决办法
2万
查看次数

错误:任务执行失败':app:transformResourcesWithMergeJavaResForDebug'

因此,在尝试运行我的项目时,我不断收到gradle构建错误.我搜索了其他解决方案,有人说添加:

packagingOptions {
    exclude 'META-INF/NOTICE'
}
Run Code Online (Sandbox Code Playgroud)

到我的应用程序的gradle.build将解决问题,但是,它没有.这是我的应用程序的gradle.build目前的样子.

apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services'

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.google.android.gms:play-services:8.3.0'
    compile 'com.google.android.gms:play-services-ads:8.3.0'
    compile 'com.google.android.gms:play-services-identity:8.3.0'
    compile 'com.firebase:firebase-client-android:2.3.1'
}

android {
    compileSdkVersion 23
    buildToolsVersion '23.0.1'
    useLibrary 'org.apache.http.legacy'

    defaultConfig {
        applicationId "com.example.j.airportmeet"
        minSdkVersion 18
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
        multiDexEnabled true
    }

    packagingOptions {
        exclude 'META-INF/NOTICE'
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑

完整的错误是这样的:

Error:Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'.
> com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: Duplicate …
Run Code Online (Sandbox Code Playgroud)

android build.gradle android-gradle-plugin

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

将CardView置于RecyclerView中,只有一个元素

我正在使用包含带有TextView和ImageView的CardView的RecyclerView(每张卡代表一个城市).我在每张卡片上都有一个onClickListener,可以将我带到城市的博物馆列表中.(RecyclerView由ArrayList填充).该列表是由垂直滚动的同一Cardview组成的RecyclerView.

当一个城市只有一个博物馆时,如何在屏幕中央显示独特的CardView?

这是活动xml:

    <?xml version="1.0" encoding="utf-8"?>
 <RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.bebbo203.mymuseum.MuseumActivity">

    <android.support.v7.widget.RecyclerView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/recyclerViewMuseum"
        android:scrollbars="vertical"
        android:scrollIndicators="none"
        android:gravity="center_horizontal"
        />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

这是RecyclerView xml:

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:baselineAligned="false"
              xmlns:card_view="http://schemas.android.com/apk/res-auto">

    <android.support.v7.widget.CardView
        xmlns:card_view="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="150dp"
        android:id="@+id/cardView"
        card_view:cardCornerRadius="2dp"
        card_view:cardUseCompatPadding="true"
        android:gravity="center_horizontal"
        android:animateLayoutChanges="true"
        >
        <FrameLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <ImageView
                android:layout_width="match_parent"
                android:layout_height="150dp"
                android:id="@+id/imageViewList"
                android:layout_gravity="center_horizontal|top"
                android:adjustViewBounds="true"
                android:scaleType="centerCrop"/>

            <TextView
                android:id="@+id/textViewList"
                android:layout_width="match_parent"
                android:layout_height="150dp"
                android:textSize="40sp"
                android:textIsSelectable="false"
                android:textAlignment="center"
                android:gravity="fill"
                android:textStyle="bold"
                android:layout_weight="1"
                android:layout_gravity="center_horizontal|top"/>

        </FrameLayout>

    </android.support.v7.widget.CardView>


</RelativeLayout>`
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助.

所以这就是MainActivity.城市列表.一切都很好. 在此输入图像描述

当我点击只有一个博物馆的Parigi时,我想在屏幕中央显示单个卡片视图

在此输入图像描述

(如果有可能我想从屏幕中心开始,而不是从顶部开始.如果我打开活动时中央卡片视图始终位于中心.例如,在中心翻译NationalGallery另一个的顺序)

在此输入图像描述

android android-cardview android-recyclerview

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

android:数据绑定错误:找不到符号类

我开始使用DataBinding功能了.我面临着问题.

错误:(21,9)错误:找不到符号类ContactListActivityBinding

build.gradle(模块:app)

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        applicationId "com.letsnurture.ln_202.databindingdemo"
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    dataBinding {
        enabled = true
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.1.1'
    compile 'com.android.support:design:23.1.1'
}
Run Code Online (Sandbox Code Playgroud)

ContactListActivity.java

import android.databinding.DataBindingUtil;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;

import com.letsnurture.ln_202.databindingdemo.model.Contact; …
Run Code Online (Sandbox Code Playgroud)

android android-databinding

35
推荐指数
10
解决办法
6万
查看次数

Espresso,当NestedScrollView或RecyclerView在CoordinatorLayout中时滚动不起作用

它似乎CoordinatorLayout打破了Espresso行为的行为,如scrollTo()RecyclerViewActions.scrollToPosition().

NestedScrollView问题

对于像这样的布局:

<android.support.design.widget.CoordinatorLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.v4.widget.NestedScrollView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:layout_behavior="@string/appbar_scrolling_view_behavior">

        ...

    </android.support.v4.widget.NestedScrollView>

    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        ...

    </android.support.design.widget.AppBarLayout>

</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)

如果我尝试滚动到NestedScrollView使用ViewActions.scrollTo()第一个问题内部的任何视图我发现是我得到了PerformException.这是因为这个动作只支持ScrollViewNestedScrollView不会扩展它.此处解释了此问题的解决方法,基本上我们可以复制代码scrollTo()并更改约束以支持NestedScrollView.这似乎有效,如果NestedScrollView它不在一个CoordinatorLayout但只要你把它放在CoordinatorLayout滚动动作失败.

RecyclerView问题

对于相同的布局,如果我替换了NestedScrollViewa RecyclerView,则滚动也存在问题.

在这种情况下,我正在使用RecyclerViewAction.scrollToPosition(position).不像NestedScrollView,在这里我可以看到一些滚动发生.但是,它看起来像滚动到错误的位置.例如,如果我滚动到最后一个位置,它会显示倒数第二个但不是最后一个.当我移动RecyclerView了的CoordinatorLayout滚动运作,因为它应该.

目前我们无法CoordinatorLayout为因此问题而使用的屏幕编写任何Espresso测试.任何遇到相同问题或知道解决方法的人?

android android-espresso android-recyclerview coordinator-layout android-nestedscrollview

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

应用程序链接无法在Android上运行

我的应用程序定义了意图过滤器来处理来自我的网站定义的URL

<intent-filter android:autoVerify="true">
  <action android:name="android.intent.action.VIEW"/>
  <category android:name="android.intent.category.DEFAULT"/>
  <category android:name="android.intent.category.BROWSABLE"/>
  <data android:host="www.host.com" android:scheme="http"/>
</intent-filter>
<intent-filter android:autoVerify="true">
  <action android:name="android.intent.action.VIEW"/>
  <category android:name="android.intent.category.DEFAULT"/>
  <category android:name="android.intent.category.BROWSABLE"/>
  <data android:host="www.host.com" android:scheme="https"/>
</intent-filter>
Run Code Online (Sandbox Code Playgroud)

该应用程序正确检测正确主机的URL,但查询用户是否在应用程序或浏览器中打开它们.我尝试使用此处指定的应用链接验证.https://developer.android.com/training/app-links/index.html

如我的服务器日志中所示,安装后,应用程序设备会查询/well-known/assetlinks.json,并以200状态响应.使用.测试数字资产文件

https:// digitalassetlinks.googleapis.com/v1/statements:list?source.web.site= https:// <domain1>:<port>&relation = delegate_permission/common.handle_all_urls

API并没有发现任何错误.

使用了获得assetlinks.json文件中的SHA256

keytool -list -v -keystore my-release-key.keystore 
Run Code Online (Sandbox Code Playgroud)

应用程序签名的.keystore.

运行https://digitalassetlinks.googleapis.com/v1/statements:list?source.web.site=https://<domain1>:<port>&relation=delegate_permission/common.handle_all_urls返回链接验证状态为"ask",表示验证失败.为什么验证会失败?

android applinks android-6.0-marshmallow

35
推荐指数
6
解决办法
8675
查看次数