我正在实现一个UI,在该UI的底部将在键盘上方显示一个EditText,供用户输入值。问题是视图被键盘部分重叠,覆盖了底部的底部。
这是底表,没有键盘。
这是显示键盘的底部表。
确保显示整个底表的最佳方法是什么?
谢谢。
我目前正在使用Android架构组件Navigation,但我遇到了问题Navigation Drawer.它在我的起始目的地显示汉堡包菜单,但其他Fragments显示向上箭头.我相信我的设置navigation_graph不正确.
在这里,您可以看到我的导航抽屉,显示2个项目,主页和设置.在其中任何一个片段中,您应该看到汉堡图标.
但是,在导航到"设置片段"时,它会显示"向上"箭头.
<?xml version="1.0" encoding="utf-8"?>
<navigation 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"
app:startDestination="@id/nav_home">
<!-- Start at HomeFragment -->
<fragment
android:id="@+id/nav_home"
android:name=".HomeFragment"
android:label="@string/home">
<!-- Navigate to the Search -->
<action
android:id="@+id/action_nav_home_to_nav_search"
app:destination="@id/nav_search" />
</fragment>
<fragment
android:id="@+id/nav_settings"
android:name=".SettingsFragment"
android:label="@string/settings">
<!-- Navigate to the Search -->
<action
android:id="@+id/action_nav_settings_to_nav_search"
app:destination="@id/nav_search" />
</fragment>
<fragment
android:id="@+id/nav_search"
android:name=".SearchFragment"
android:label="@string/search" />
</navigation>
Run Code Online (Sandbox Code Playgroud)
我觉得HomeFragment并且SettingsFragment应该以某种方式相关,但我不确定如何定义它.
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="single">
<item
android:id="@id/nav_home"
android:icon="@drawable/ic_home_white_24dp"
android:title="@string/home" /> …Run Code Online (Sandbox Code Playgroud) android navigation-drawer android-components android-jetpack android-architecture-navigation
我试图在Android Studio中使用Android设备监视器,但不知怎的,我设法删除所有视图.
我已经尝试重置透视图,Window-> Show View - >(Any View),甚至重新安装Android Studio但没有显示任何内容.

有谁知道如何将设备监视器重置为其默认视图?(左侧是设备,右侧是堆/线程/分配视图.)
谢谢你的帮助!
我目前正在试图弄清楚如何制作自定义扩展动画,使用ActivityOptionsCompat似乎是最好的方法; 但是,我不确定如何编写自定义过渡动画来实现我想要的效果.
我在列表"打开"的顶部有一个按钮,按下该按钮会将ListView向下移动,展开并显示带有选项的屏幕.我希望这张图片能解释我想要完成的任务.
我想要做的是:
但是List并没有被推开,新的屏幕只是叠加在它上面.
ViewCompat.setTransitionName( filters, "FILTERS" );
ViewCompat.setTransitionName( frame, "FRAME" );
ViewCompat.setTransitionName( viewPager, "LIST" );
ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation(
getActivity(), new Pair<>( filters, "FILTERS" ), new Pair<>( frame, "FRAME" ), new Pair<>( (View)viewPager, "LIST" ) );
ActivityCompat.startActivity( getActivity(), new Intent( getActivity(), Filters.class ),
options.toBundle() );
Run Code Online (Sandbox Code Playgroud)
有谁知道如何完成这种过渡动画风格?
谢谢你的时间和帮助.
我正在尝试显示一个BottomSheetDialogFragment带有几个EditText字段供用户输入信息.我想直接在键盘上方显示它,但它会不断覆盖内容.
这就是当我提出时BottomSheetDialogFragment,你可以看到它正在选择Card Number EditText,但覆盖其他内容.
理想情况下,这就是我正在寻找的,你可以看到它们EditTexts和视图的填充.
我已经尝试了很多解决方案windowSoftInputMode,但似乎没有任何效果.我已将其设置adjustResize为父级Activity和实际的BottomSheetDialogFragment通道
dialog.window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE)
我也试着改变我的布局,从改变它FrameLayout,到ScrollView一个CoordinatorLayout,看看是否能对布局的地位产生任何影响,但似乎没有任何工作.
如果有人知道如何做到这一点,那将非常感谢,谢谢.
我目前有一个包含MyItem,并使用 Firebase/LiveData的列表的项目。它被组织成组,每个组都有项目。
如果发生以下任何情况,我希望能够更新此列表:
为了获取内容列表,我有一个像这样的函数来返回 LiveData,每当一个项目更新(#1)时它就会更新。
getList(id: String): LiveData<List<MyItem>> {
val data = MutableLiveData<List<MyItem>>()
firestore
.collection("groups")
.document(id)
.collection("items")
.addSnapshotListener { snapshot, exception ->
val items = snapshot?.toObjects(MyItem::class.java) ?: emptyList()
// filter items
data.postValue(items)
}
return data
}
Run Code Online (Sandbox Code Playgroud)
在我的 ViewModel 中,我有处理这种情况的逻辑。
private val result = MediatorLiveData<Resource<List<MyItem>>>()
private var source: LiveData<List<MyItem>>? = null
val contents: LiveData<Resource<List<MyItem>>>
get() {
val group = database.group
// if the selected group is changed.
return Transformations.switchMap(group) …Run Code Online (Sandbox Code Playgroud) android kotlin android-livedata google-cloud-firestore mutablelivedata
有没有一种简单的方法来转换嵌套对象如何转换为JSON?我正在尝试创建一个JSON对象来匹配后端.我正在为我的网络使用Retrofit,它使用Gson将Object转换为JSON.
我无法访问网络调用和转换之间的任何代码,所以我试图通过GsonBuilder或Annotations找到一种简洁的方法来修改Object的转换方式.
// Automatically converted to JSON with passed in Gson.
Call<myObject> search( @Body foo myFoo );
Run Code Online (Sandbox Code Playgroud)
public class foo {
String text = "boo";
bar b = new bar();
}
public class bar {
String other = "moo";
}
Run Code Online (Sandbox Code Playgroud)
结果:
{ "text": "boo", "b" { "other": "moo" } }
Run Code Online (Sandbox Code Playgroud)
期望的结果:
{ "text": "boo", "other": "moo" }
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助.:)
我正在集成stripe-android到我的应用程序中,但需要进行一些更改才能使其正确匹配.在这个答案之后,我做了一个叉子并把它作为一个gradle依赖.
你可以使用另一种方法来添加github项目的依赖项,使用github repo和jitpack插件在这种情况下你必须添加这个repo tp你的build.gradle
repositories {
// ...
maven { url "https://jitpack.io" }
}
Run Code Online (Sandbox Code Playgroud)
和依赖:
dependencies {
compile 'com.github.User:Repo:Tag'
}
Run Code Online (Sandbox Code Playgroud)
听起来很容易.所以我创建了一个fork,并进行了我需要的小改动,并按照他们的方案v5.1.1创建了一个新标记.然后我将它添加到我的依赖项中.
dependencies {
compile 'com.github.ClickDishes:stripe-android:v5.1.1'
}
Run Code Online (Sandbox Code Playgroud)
所以它能够找到一个版本; 但是,它现在会给我一个错误.
错误:模块'com.github.ClickDishes:stripe-android:v5.1.1'取决于一个或多个Android库但是是一个jar
你可以在这里找到我的标签,https://github.com/ClickDishes/stripe-android/releases/tag/v5.1.1
关于我做错了什么的任何想法?
谢谢.
我一直在研究这个问题,我认为这可能是图书馆设置的一个问题.阅读JitPack上的日志显示了很多关于Android支持类的错误,并且gms.所以我相信它与一些图书馆的搭配并不好.
https://jitpack.io/com/github/ClickDishes/stripe-android/v5.1.1/build.log
...
symbol: class LineItem
location: class CartError
/home/jitpack/build/android-pay/src/main/java/com/stripe/wrap/pay/utils/CartManager.java:9: error: package com.google.android.gms.wallet does not exist
import com.google.android.gms.wallet.Cart;
^
...
Run Code Online (Sandbox Code Playgroud)
然后我将其与stripe:stripe-androidJitPack 上的实际库进行比较,并显示相同的错误.
我正在尝试使用Retrofit(2.0.0-beta3),但是当使用Authenticator添加令牌时,我似乎无法从同步调用中获取数据.我们在后端的日志记录只显示了很多登录尝试,但我无法从正文中获取实际添加到标题的数据.
public static class TokenAuthenticator implements Authenticator {
@Override
public Request authenticate(Route route, Response response) throws IOException {
// Refresh your access_token using a synchronous api request
UserService userService = createService(UserService.class);
Call<Session> call = userService.emailLogin(new Credentials("handle", "pass"));
// This call is made correctly, as it shows up on the back-end.
Session body = call.execute().body();
// This line is never hit.
Logger.d("Session token: " + body.token);
// Add new header to rejected request and retry it
return response.request().newBuilder()
.header("Auth-Token", body.token)
.build(); …Run Code Online (Sandbox Code Playgroud) 根据我的理解,ImageButton内部LibGDX是包含图像的框架.是否可以设置框架的背景?
例如,我想使用Button背景,并在该图像的顶部应用一个Icon.
皮肤与背景:
"com.badlogic.gdx.scenes.scene2d.ui.ImageButton$ImageButtonStyle": {
"default": {
"imageDown": "button-down",
"imageUp": "button-up"
}
}
Run Code Online (Sandbox Code Playgroud)
创建ImageButton:
// Getting imageButtonStyle with "default" style, as it just has the background.
ImageButton.ImageButtonStyle imageButtonStyle = skin.get( "default", ImageButton.ImageButtonStyle.class );
ImageButton button = new ImageButton( imageButtonStyle );
// Set the image on the button to something.
Run Code Online (Sandbox Code Playgroud)


谢谢您的帮助.
我的资产文件夹中有一个目录,其中包含数据库的 json 。
资产/数据库/database_1/locations.json
使用时minifyEnabled true,它会删除这些资产,因为它认为它们没有被使用。
我如何告诉 ProGuard 它们已被使用?
android ×10
bottom-sheet ×2
android-architecture-navigation ×1
android-json ×1
animation ×1
ddms ×1
git ×1
github ×1
gson ×1
json ×1
kotlin ×1
libgdx ×1
proguard ×1
retrofit2 ×1