我需要创建一个像Google Newsstand这样的界面,它是一种在折叠标题(垂直滚动)上的ViewPager(水平滚动).我的一个要求是使用Google IO 2015中提供的新设计支持库.(http://android-developers.blogspot.ca/2015/05/android-design-support-library.html)
基于Chris Banes(https://github.com/chrisbanes/cheesesquare)创建的示例,我已经达到了能够执行折叠行为但使用基本LinearLayout(没有水平滚动)的程度.
我试图用ViewPager替换LinearLayout,我得到一个空白屏幕.我玩过:宽度,重量和所有类型的视图组,但....仍然是一个空白的屏幕.似乎ViewPager和NestedScrollView彼此不喜欢.
我通过使用HorizontalScrollView尝试了一种解决方法:它可以工作,但我放弃了PagerTitleStrip功能的好处,并将焦点放在一个面板上(我可以在两个面板之间水平停止).
现在我没有更多的想法,如果有人能引导我找到解决方案......
谢谢
这是我最新的布局文件:
<?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"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="@dimen/header_height"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<android.support.design.widget.CollapsingToolbarLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
app:contentScrim="?attr/colorPrimary"
app:expandedTitleMarginEnd="64dp"
app:expandedTitleMarginStart="48dp"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<include
layout="@layout/part_header"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_collapseMode="parallax"/>
<android.support.v7.widget.Toolbar
android:id="@+id/activity_main_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:layout_collapseMode="pin"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<android.support.v4.widget.NestedScrollView
android:id="@+id/activity_main_nestedscrollview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<android.support.v4.view.ViewPager
android:id="@+id/activity_main_viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FFA0"/>
</android.support.v4.widget.NestedScrollView>
</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud) android android-layout android-viewpager android-support-library
我正在将所有支持/ appcompat库迁移到androidx.在所有更新之后,由于此错误,我无法构建我的项目
:app:processDebugManifest UP-TO-DATE
AGPBI: {"kind":"error","text":"error: resource android:attr/fontVariationSettings not found.","sources":[{"file":"/Users/xxx/.gradle/caches/transforms-1/files-1.1/appcompat-v7-27.1.1.aar/7cae290a69b05f5ffc25283e26a7eb4a/res/values/values.xml","position":{"startLine":250,"startColumn":4,"startOffset":27058,"endColumn":68,"endOffset":27122}}],"original":"","tool":"AAPT"}
AGPBI: {"kind":"error","text":"error: resource android:attr/ttcIndex not found.","sources":[{"file":"/Users/xxx/.gradle/caches/transforms-1/files-1.1/appcompat-v7-27.1.1.aar/7cae290a69b05f5ffc25283e26a7eb4a/res/values/values.xml","position":{"startLine":250,"startColumn":4,"startOffset":27058,"endColumn":68,"endOffset":27122}}],"original":"","tool":"AAPT"}
:app:processDebugResources
Run Code Online (Sandbox Code Playgroud)
我试图逐个包含所有依赖项,以确定导致问题的原因.只有当我删除Room库¯\ _(ツ)_ /¯时才能构建
https://developer.android.com/topic/libraries/architecture/adding-components#room
这很奇怪,因为问题似乎来自造型资源,但房间只是一个数据库库.
有没有人有任何想法或解决方案,包括房间而不打破一切?
===============================
我的conf:
compileSdkVersion 27
buildToolsVersion 27.0.3
defaultConfig {
minSdkVersion 16
targetSdkVersion 27
}
dependencies {
// ROOM
implementation ('androidx.room:room-runtime:' + androidxRoomVersion)
implementation ('androidx.room:room-rxjava2:' + androidxRoomVersion)
implementation ('androidx.room:room-guava:' + androidxRoomVersion)
kapt ('androidx.room:room-compiler:' + androidxRoomVersion)
}
Run Code Online (Sandbox Code Playgroud)
with:androidxRoomVersion = 2.0.0-alpha1
android android-support-library android-gradle-plugin android-room androidx
我在Android上使用Firebase Auth.
我的登录流程正常但我无法立即更新用户名和profileUrl.
public void test() {
String username = "test username";
Uri avatarUri = Uri.parse("http://www.pixelstalk.net/wp-content/uploads/2016/08/Wonderful-Random-Background.jpg");
UserProfileChangeRequest.Builder builder = new UserProfileChangeRequest.Builder();
builder.setDisplayName(username);
builder.setPhotoUri(avatarUri);
Log.d("UPDATE PROFILE", "user exists=" + (firebaseAuth.getCurrentUser() != null ? "YES" : "NO"));
Log.d("UPDATE PROFILE", "user anonymous=" + (firebaseAuth.getCurrentUser().isAnonymous() ? "YES" : "NO"));
firebaseAuth.getCurrentUser().updateProfile(builder.build()).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()) {
if (firebaseAuth.getCurrentUser().getDisplayName() != null) {
Log.d("UPDATE PROFILE", "username=" + firebaseAuth.getCurrentUser().getDisplayName());
} else {
Log.d("UPDATE PROFILE", "username=NULL");
}
if …Run Code Online (Sandbox Code Playgroud)
我有一个带有主应用程序和 3 个模块的项目。他们像彼此依赖
app (android application)
|
--- module1 (android library)
|
--- module2 (android library)
|
--- module3 (android library)
Run Code Online (Sandbox Code Playgroud)
我将 AS 3.0 与 BuildTool 3.0.0-alpha5 一起使用。
我应用了文档中描述的更改:https
: //developer.android.com/studio/build/gradle-plugin-3-0-0-migration.html#variant_dependencies
这是我的
build.gradle(应用程序)
apply plugin: 'com.android.application'
android {
...
buildTypes {
debug {}
qa {}
release {}
}
flavorDimensions "default"
productFlavors {
flavor1 {dimension = "default"}
flavor2 {dimension = "default"}
}
}
dependencies {
...
implementation project(path: ':module1')
...
}
Run Code Online (Sandbox Code Playgroud)
这是我的 build.gradle ( module1 )
apply plugin: 'com.android.library' …Run Code Online (Sandbox Code Playgroud) android android-library android-studio build.gradle android-productflavors
我用了一个标签菜单ViewPager.每个选项卡都包含android.support.v4包中的片段(与旧SDK兼容).其中一个片段是WebView(调用FragmentWeb),我希望它保留在寻呼机布局中.问题是当我WebView充气时,它以全屏模式运行.
有没有办法让网页浏览器保持在我的标签下?
谢谢
我的片段类:FragmentWeb.java
public class FragmentWeb extends Fragment {
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View mainView = (View) inflater.inflate(R.layout.fragment_web, container, false);
WebView webView = (WebView) mainView.findViewById(R.id.webview);
webView.loadUrl("http://www.google.com");
return mainView;
}
}
Run Code Online (Sandbox Code Playgroud)
My Fragment的布局:fragment_web.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<WebView
android:id="@+id/webview"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud) android ×5
android-room ×1
androidx ×1
build.gradle ×1
firebase ×1
fragment ×1
fullscreen ×1
webview ×1