小编Dr.*_*cky的帖子

Android:垂直LinearLayout中的ScrollView

我正在为Android设备制作一个应用程序,我正在尝试在LinearLayout中使用ScrollView,但是当我尝试这样做时,ScrollView会占用LinearLayout中ScrollView之后的所有空间和元素.

例如:
如果ScrollView不是"完整":
http://kakko76.free.fr/scroll2.jpg
如果ScrollView是"完整":
http://kakko76.free.fr/scroll1.png

正如您所看到的,按钮消失...
以下是此活动的代码:

<LinearLayout
    android:id="@+id/linearLayout1"
    android:layout_width="fill_parent"
    android:layout_marginLeft="50dp"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:orientation="vertical"
    android:focusable="true"
    android:focusableInTouchMode="true"
    android:background="@drawable/linearlayoutbackground" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/nom_des_joueurs"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:layout_marginBottom="30dp" />

    <ScrollView
        android:id="@+id/scrollView1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <LinearLayout
            android:id="@+id/llPlayersName"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical"
             >

        </LinearLayout>

    </ScrollView>

    <Button
        android:id="@+id/okPlayersName"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:text="@string/ok"
        android:background="@drawable/backgroundbutton"
        android:layout_marginTop="30dp" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

在LinearLayout中添加ScrollView中的元素之后.
有解决方案吗
谢谢.

android android-layout android-linearlayout

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

从服务器返回响应时完成活动,但等待动画结束

我通过Volley向服务器发送请求; 发送后,增加一个显示请求数的变量.

VolleyGeneral.getInstance().addToRequestQueue(jsonObj,TAG);
numberOfReq++;
Run Code Online (Sandbox Code Playgroud)

然后,当我得到响应时,减少该变量.

@Override
public void onResponse(JSONObject response){
    numberOfReq--;
}
Run Code Online (Sandbox Code Playgroud)

另一方面,我正在显示一个图像,使用淡入淡出动画2秒然后我完成了活动并转到下一个活动.

但我想在完成活动之前等待所有服务器响应.所以我写这个部分是这样的:

@Override
public void onAnimationEnd(Animation anim){
    while(numberOfReq == 0){
        numberOfReq = -1;
        startActivity(intent);
        finish();
        break;
    }
}
Run Code Online (Sandbox Code Playgroud)

如果服务器在2秒之前发送响应,则一切都是Okey.

但是如果在2秒后收到回复,活动就没有完成.

android android-animation android-activity

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

Android Q 上已弃用的 WifiManager.getConfiguredNetworks 和 WifiManager.removeNetwork 方法的替代方案?

对于 UiTest 类设置,我需要从不记得的 Wifi 网络开始。为此,我结合使用了WifiManager.getConfiguredNetworks()WifiManager.removeNetwork(),这两种方法现在在 Android Q 中均受到限制并已弃用。

现在,由于我在特权模式(超级用户)下运行测试,因此getConfiguredNetworks()方法实际上返回网络的完整列表,并且removeNetwork()删除我通过返回的 WifiConfiguration 的 Id 传递的网络,即使我运行此代码在 Android Q 设备上。

TLDR: 我的问题更多的是这两种方法被弃用而没有得到适当的替换,而不是它们现在毫无价值使用。至少据我所知,这就是我问的原因;当我的测试应用程序以超级用户身份运行时,我有什么办法可以:

  1. 检索所有 Wifi 配置
  2. 一一删除

文档中,可以读到:

获取配置的网络()

此方法在 API 级别 29 中已弃用。 a) 请参阅 WifiNetworkSpecifier.Builder#build() 了解触发 Wi-Fi 网络连接的新机制。b) 请参阅 addNetworkSuggestions(java.util.List)、removeNetworkSuggestions(java.util.List) 了解用于添加 Wi-Fi 网络的新 API,以供自动连接到 wifi 时考虑。兼容性说明:对于面向 Build.VERSION_CODES.Q 或更高版本的应用程序,此 API 将返回空列表。

他们链接的解决方案似乎是用于连接 wifi 网络的操作,但这不是我想要的。

PS,我至少会很高兴通过执行 adb shell 命令(如果需要,在超级用户模式下)来做同样的事情。已尝试使用wpa_cli list_networks至少列出所有网络,但似乎不可用。

还尝试删除data/misc/wifi/wpa_supplicantdata/misc_ce/0/wifi/WifiConfigStore.xml,但无济于事。

android adb wifi wifimanager android-wifi

6
推荐指数
0
解决办法
2273
查看次数

git: includeIf 不使用 git clone

.gitconfig

[user]
    name = Dr.jacky
    email = personal.email@gmail.com
    signingKey = ""
[includeIf "gitdir:/Users/drjacky/Projects/CompanyName/"]
    path = /Users/drjacky/gitconfigcompanyname/.gitconfig
[core]
    excludesfile = /Users/drjacky/.gitignore_global
    autocrlf = input
[difftool "sourcetree"]
    cmd = opendiff \"$LOCAL\" \"$REMOTE\"
    path = 
[mergetool "sourcetree"]
    cmd = /Applications/Sourcetree.app/Contents/Resources/opendiff-w.sh \"$LOCAL\" \"$REMOTE\" -ancestor \"$BASE\" -merge \"$MERGED\"
    trustExitCode = true
[commit]
    template = /Users/drjacky/.stCommitMsg
    gpgSign = false
[gpg]
    program = gpg
[tag]
    forceSignAnnotated = false

Run Code Online (Sandbox Code Playgroud)

gitconfigcompanyname/.gitconfig

[user]
    name = My Name
    email = my.company.email@company.com

Run Code Online (Sandbox Code Playgroud)

.ssh/配置


# --- Sourcetree Generated ---
Host …
Run Code Online (Sandbox Code Playgroud)

git github ssh-keys git-config

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

如何在Android应用中显示从我自己的服务器获取的广告

我想在我的应用程序底部显示一个视图,以显示广告,从我自己的Linux服务器获取.

重要的一点是,我想在服务器端我自己的控制面板.因此,我无法使用AdMob,Google Ads SDK,或者每个没有开源服务器端面板的SDK.

我搜索得太多了,发现了很多开源项目(客户端和服务器端),但我很困惑.

1-Whats是publisherId?2 - 我可以从自己的服务器上获取广告吗?

两边都有开源库吗?(客户端和服务器)?或者如果没有,使用哪个开源库我可以从我自己的服务器获取广告?

android advertisement-server

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

如果没有 @Provides 注释的方法,则无法提供该类

我想将依赖项(HomeViewModel)注入到我的片段(HomeFragment)中。

我有一个类(HomeViewModelImpl),它实现了该抽象(HomeViewModel),并且在这个类中,我当然会重写父级的方法。

抽象类(HomeViewModel )是从BaseViewModel扩展而来的抽象类。

BaseViewModel是一个普通的类open它是从Android生命周期组件的ViewModel类扩展而来的。

HomeViewModel问题是当我想注入片段时出现错误:

> error: [Dagger/MissingBinding] [dagger.android.AndroidInjector.inject(T)] com.example.mvvm.ui.home.HomeViewModel cannot be provided without an @Provides-annotated method.
public abstract interface AppComponent extends dagger.android.AndroidInjector<com.example.mvvm.MyApplication> {
            ^
  com.example.mvvm.ui.home.HomeViewModel is injected at
      com.example.mvvm.ui.home.HomeFragment.viewModel
  com.example.mvvm.ui.home.HomeFragment is injected at
      dagger.android.AndroidInjector.inject(T)
Run Code Online (Sandbox Code Playgroud)

主页片段

class HomeFragment : BaseFragment() {
//Error comes from this line
@Inject
lateinit var viewModel: HomeViewModel
}
Run Code Online (Sandbox Code Playgroud)

主页视图模型

//If I write @Inject annotation here, …
Run Code Online (Sandbox Code Playgroud)

android abstract-class kotlin dagger-2

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

如果文件已经存在,则使 ACTION_CREATE_DOCUMENT 覆盖该文件,而不是向其附加 (n)

ACTION_CREATE_DOCUMENT在我的应用程序中创建文件时使用了意图。
为了支持范围存储,我尝试使用ACTION_CREATE_DOCUMENT来创建一个文件,但如果该文件已经存在,Android 的存储访问框架 (SAF) 默认将 (n) 附加到该文件并且不会覆盖旧文件。

有什么方法可以找到文件已经存在的方法或用警告强制覆盖文件?

android android-intent

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

如何删除工具栏周围的边框?

在我的应用程序中,我使用的是工具栏,似乎要消除它周围的边框: 在此处输入图片说明

然后我像这样创建它:

<android.support.design.widget.AppBarLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/transparent">

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:layout_gravity="center"
        android:minHeight="?attr/actionBarSize"/>

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

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

我这样使用它:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <include
        layout="@layout/app_bar_main_light"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

而且我从未找到指定此边框是什么的属性或样式。

android border toolbar android-toolbar

4
推荐指数
1
解决办法
2107
查看次数

Collections.sort()会影响所有ArrayLists.我如何只排序一个列表而不排序其他列表?

我有三个ArrayLists:
一个用于按照输入的顺序存储用户输入,位于主类中.
第二个与第一个完全相同,但它被传递给一个remTrip被复制的方法并返回结果.
第三个是list1在下面的代码中,这是正在处理的代码.

public static ArrayList<String> remTrip( ArrayList<String> a){
    //code here
    ArrayList<String> list1 = a;
    Collections.sort(list1);
    //code to remove triplicates from the list and returns the result
}
Run Code Online (Sandbox Code Playgroud)

我想保持第ArrayList<String>一个按照它的顺序(即{"dog", "cat" , "tiger", "cat", "cat"}),但显然是对Collections.sort()所有ArrayLists 进行排序.

我如何只对列表中的一个进行排序而不对其他列表进行排序?

java sorting arraylist

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

Android Jetpack 导航 - 如何在导航参数中传递空字符串?

AnimatedNavHost(navController, startDestination = BottomNavItem.Splash.screen_route){
composable(
            signup + "/{emailFromSignIn}" + "/{passwordFromSignIn}",
            arguments = listOf(
                navArgument("emailFromSignIn"){
                    type = NavType.StringType
            },navArgument("passwordFromSignIn"){
                    type = NavType.StringType
            }
}
Run Code Online (Sandbox Code Playgroud)
navController.navigate(signup + "/$textEmail" + "/$textPassword")

Run Code Online (Sandbox Code Playgroud)

我怎样才能传递一个空字符串?

错误:

在导航图中找不到与请求 NavDeepLinkRequest{ uri=android-app://androidx.navigation/signup// } 匹配的导航目的地 NavGraph(0x0) startDestination={Destination(0xb6b16c34) route=splash}

android kotlin android-jetpack android-jetpack-navigation android-jetpack-compose

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