小编Bar*_*ski的帖子

Dagger-Hilt @ViewModelInject sharedViewModel 未注入片段

我正在尝试使用Jetpack 教程在片段和活动之间创建共享注入视图模型。

共享视图模型成功注入到父 MyActivity 中,但是当子渲染时,由于依赖注入失败,应用程序崩溃。我在下面提供了创建问题的代码。

提供会话管理器:

@InstallIn(ApplicationComponent::class)
@Module
class AppModule {
    @Provides
    @Singleton
    fun provideSessionManager(
        networkClient: NetworkClient
    ): SessionManager {
        return SessionManager(networkClient)
    }
}
Run Code Online (Sandbox Code Playgroud)

要注入共享视图模型:

class SharedViewModel @ViewModelInject constructor(
    private var sessionManager: SessionManager
) : ViewModel() {

    var name = MutableLiveData<String>("Shared View Model")
}
Run Code Online (Sandbox Code Playgroud)

并且由父活动和子片段使用。

class MyActionFragment() : Fragment() {
    private val viewModel: SharedViewModel by viewModels()
    override fun onActivityCreated(savedInstanceState: Bundle?) {
       super.onActivityCreated(savedInstanceState)
       Timber.d("View Model Name 1: ${viewModel.name.value}") // This line crashes
    }
}
Run Code Online (Sandbox Code Playgroud)
class MyActivity : AuthenticatedBaseActivity() { …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-viewmodel dagger-hilt

4
推荐指数
3
解决办法
5488
查看次数


如何通过视图填充收缩画布?

我正在构建一个自定义视图,在其中重写 onDraw 方法。

有没有办法通过此视图填充值收缩画布(作为 onDraw 中的参数接收)?

并回答有关填充本身的任何可能的问题 - 就我而言,我不能使用边距。我需要使用填充物。

java android canvas ondraw

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

BuildConfig.DEBUG(或等价物)作为常量值

假设我有一个自定义注释:

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.SOURCE)
public @interface Test {
    boolean type();
}
Run Code Online (Sandbox Code Playgroud)

我希望type参数根据构建类型而不同(但这会自动更改)。

所以,我可以做一些喜欢的是:

@Test(type = BuildConfig.DEBUG)
public class Example {
} 
Run Code Online (Sandbox Code Playgroud)

但是当然Example该类的代码不会编译,因为 的值BuildConfig.DEBUG不是常量。

任何人都知道为此创建解决方法吗?也许在gradle中指定一些其他参数?我对让我手动更改type特定构建的解决方案不感兴趣。这样或那样。我正在寻找一种通过构建自动执行此操作的方法。

java android annotations gradle android-gradle-plugin

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

Android双击两次点火

我使用了以下双击代码

setOnTouchListener(this);
detector = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener() {
    @Override
    public boolean onDoubleTapEvent(MotionEvent ev) {
        int x = (int)ev.getX();
        int y = (int)ev.getY();
        Toast.makeText(getContext(), "Double tapped", Toast.LENGTH_LONG).show();
    }
});
Run Code Online (Sandbox Code Playgroud)

我跑的时候跑两次吐司

有任何想法吗?

在KitKat 4.4上运行

任何帮助赞赏

标记

android touch gestures

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

RxJava 2.0 - 如何组合Observable和Completable

假设有包含方法的界面:

Observable<Data> makeHttpCall(int param1, boolean param2);

Completable storeInDatabase(Data data);

Completable combinedCall(int param1, boolean param2);
Run Code Online (Sandbox Code Playgroud)

实现combineCall方法的最佳方法是:

  1. 从makeHttpCall获取数据
  2. 使用storeInDatabase存储它
  3. return store可在storeInDatabase完成时完成吗?

似乎在RxJava 1.0中可以执行Completable.merge(Observable),但merge似乎不再接受Observable.

java rx-java2

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

如何使用 CSS 将 &lt;label&gt; 放在 ASP.Net 中的文本框控件上?

我正在尝试创建一行,其中包含一些带有标签的文本框,如下所示:

在此处输入图片说明

如何将标签与文本框对齐?

        <label>Student ID</label>
        <asp:TextBox ID="txtStudentID" runat="server"></asp:TextBox>
        <label>Student Last Name</label>
        <asp:TextBox ID="txtStuLastName" runat="server"></asp:TextBox>
        <label>Student First Name</label>
        <asp:TextBox ID="txtStuFirstName" runat="server"></asp:TextBox>
Run Code Online (Sandbox Code Playgroud)

这是我当前的 CSS。

.boxround label {
    display: block;        
    float: left;
}
Run Code Online (Sandbox Code Playgroud)

这是我目前得到的:

在此处输入图片说明

谢谢你。

html css asp.net

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

Android Espresso - 嵌套父级的组合视图匹配器

我想从以下视图层次结构中找到 ID 为“buttonActionNo”的按钮。

我尝试了以下代码,但它不起作用。给出“在层次结构中没有找到匹配的视图:”错误。

**ViewInteraction appCompatImageButton3 = onView(  
            allOf(withId(R.id.buttonActionNo),   
                        allOf( withhParent(withId(R.id.actionButtonPanel)),

                        allOf( withParent(withId(R.id.outerContainer)),

                        allOf( withParent(withId(R.id.questioContainer)),

                        withParent(withId(R.id.redFlagQuestion1))))),

                        isDisplayed()));

        appCompatImageButton3.perform(click());**
Run Code Online (Sandbox Code Playgroud)

有没有人试图抓住一个几乎没有嵌套父级的视图?

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

        <!-- redFlagQuestion1  -->
        <FrameLayout android:id="@+id/questionOneContainer"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@color/white">

            <include
                android:id="@+id/redFlagQuestion1"
                layout="@layout/row_base" />

        </FrameLayout>

        <!-- redFlagQuestion 2 -->
        <FrameLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@color/white">

            <include
                android:id="@+id/fillerLayout2"
                layout="@layout/fill_space" />

            <include
                android:id="@+id/redFlagQuestion2"
                layout="@layout/row_base" />


        </FrameLayout>

        <!-- redFlagQuestion 3 -->
        <FrameLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@color/white">

            <include
                android:id="@+id/fillerLayout3"
                layout="@layout/fill_space" />

            <include
                android:id="@+id/redFlagQuestion3"
                layout="@layout/row_base" />


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

row_base.xml 视图层次结构如下:

+----------->LinearLayout{id=2131492990, res-name=redFlagQuestion1,visibility=VISIBLE, width=1080, height=780, has-focus=false, has-focusable=true, has- window-focus=true, …

layout android nested android-espresso

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