我在布局中的 ConstraintLayout 内定义了两个组。我希望它们彼此之间具有可见性。因此,如果 group1 可见,则 group2 应该消失,反之亦然。我正在尝试使用数据绑定来实现这一点。
<data>
<import type="android.view.View" />
</data>
<android.support.constraint.Group
android:id="@+id/group1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="visible"
app:constraint_referenced_ids="..." />
<android.support.constraint.Group
android:id="@+id/group2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="@{group1.visibility == View.VISIBLE? View.GONE : View.VISIBLE}"
app:constraint_referenced_ids="..." />
Run Code Online (Sandbox Code Playgroud)
但我收到一个编译错误,内容是:
****/ 数据绑定错误 ****msg: 无法解析类型 'android.support.constraint.Group' 上的双向绑定属性 'visibility'
我究竟做错了什么?
所以我的屏幕代码看起来像这样。我有一个 useStateamount
在重新渲染时不断重置为初始值。我有大约 3 个 useEffects。其中之一是在此处的示例代码中,我从数据库获取金额并使用 setAmount 设置它。
const ConfirmPaymentDialog = props => {
const getInitialVal = () => {
console.log('Initial Amount: 0');
return conversions.numberToBigNumber(0);
};
const [amount, setAmount] = useState<BigNumber>(getInitialVal());
useEffect(() => {
getAmountToPay();
},[]);
const getAmountToPay = async () => {
const amount = await myDbModule.getAmount(customer.id);
console.log('DB Amount: ' + amount?.toString());
setAmount(amount || conversions.numberToBigNumber(0));
};
useEffect(() => {
...
}, [isInputTextFocused])
console.log('Rendering');
return (<View>...</View>);
}
Run Code Online (Sandbox Code Playgroud)
当我打开此屏幕时。我收到以下控制台日志
LOG Initial Amount: 0
LOG Rendering
LOG DB Amount: 500
LOG …
Run Code Online (Sandbox Code Playgroud) 我主要在Vivo设备上获得Resources $ NotFoundException。这仅在Drawable资源中发生。我有从mdpi到xxxhdpi的所有变体。所有这些都是png。我无法复制它,只能在4个不同的地方进行生产。对于此drawable,其中2个在初始屏幕中,而1个在该行的 facebook登录库中。这意味着这些用户无法进入应用程序。知道是否需要对这些设备进行一些特殊处理吗?我以前从未遇到过这样的事情。
样例代码
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/image_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="0dp"
android:adjustViewBounds="true"
app:srcCompat="@drawable/splash"
app:layout_constraintWidth_max="400dp"
app:layout_constraintBottom_toTopOf="@+id/white_bg"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
tools:src="@drawable/splash"/>
Run Code Online (Sandbox Code Playgroud)
在这里,我由于splash
Drawable 而崩溃。
堆栈跟踪
由android.content.res.Resources $ NotFoundException导致无法找到资源ID#0x7f08013d com.myapp.ui.splashScreen.SplashScreenActivity.onCreate
由android.content.res.Resources $ NotFoundException引起:无法在android.content.res.ResourcesImpl.loadDrawableForCookie(ResourcesImpl.java)的android.content.res.ResourcesImpl.getResourceName(ResourcesImpl.java:292)上找到资源ID#0x7f08013d的879。的android.content.res.TypedArray.getDrawable(TypedArray.java:928)的android.widget.ImageView。(ImageView.java:188)的android.widget.ImageView。(ImageView.java:171)的java:953) androidx.appcompat.widget.AppCompatImageView上的androidx.appcompat.widget.AppCompatImageView。(AppCompatImageView.java:72)。(android.x.appcompat.app.AppCompatViewInflater.createImageView(AppCompatViewInflater.java:187)的androidx.appcompat.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:107)的androidx.appcompat.app.App.pat.AppCompatDele androidx.appcompat.app.AppCompatDelegateImpl.onCreateView(AppCompatDelegateImpl.java:1316)的createView(AppCompatDelegateImpl.java:1266)android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:817)的android.view.LayoutInflater.createViewFromTag( .java:775),位于android.view.LayoutInflater.rInflate(LayoutInflater.java:908),位于android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:869),位于android.view.LayoutInflater.inflate(LayoutInflater.java:521)在android.view。androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:469)上的android.view.LayoutInflater.inflate(LayoutInflater.java:380)上的LayoutInflater.inflate(LayoutInflater.java:429)androidx.appcompat.app.App。 com.myapp.ui.splashScreen.SplashScreenActivity.onCreate(SplashScreenActivity.java:81)上的.setContentView(AppCompatActivity.java:141),android.app.Activity上的android.app.Activity.performCreate(Activity.java:7129)。 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1220)的performCreate(Activity.java:7120)android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2906)的android.app.ActivityThread.handleLaunchActivity(ActivityThread.java :3031),位于android.app.ActivityThread。-wrap11(ActivityThread.java)在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1732)在android.os.Handler.dispatchMessage(Handler.java:106)在android.os.Looper.loop(Looper。的android.app.ActivityThread.main(ActivityThread.java:6792)的java:192)com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run(RuntimeInit的java.lang.reflect.Method.invoke(Method.java)处.java:438),位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:826)在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:826)处调用(Method.java)在com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run(RuntimeInit.java:438)在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:826)处调用(Method.java)在com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run(RuntimeInit.java:438)
我正在使用Dagger 2.16,并在我的Dagger 实现中关注了本文。直到我只有一个Activity(HomeActivity)为止,一切都在此实现中运行良好。我一开始在SplashScreenActivity中实现Dagger。我开始收到此错误。这是我项目中的一些代码
AppComponent.kt
@Singleton
@Component(modules = [
AndroidInjectionModule::class,
AppModule::class,
ActivityBuilder::class,
ServiceBuilder::class,
BroadcastRecieverBuilder::class])
interface AppComponent : AndroidInjector<MyApp> {
@Component.Builder
abstract class Builder : AndroidInjector.Builder<MyApp>()
}
Run Code Online (Sandbox Code Playgroud)
AppModule.kt
@Module()
class AppModule {
@Provides
@Singleton
fun provideContext(application: MyApp): Context {
return application
}
@Provides
@Singleton
fun provideRestService(retrofit: Retrofit): RestService {
return retrofit.create(RestService::class.java)
}
...
}
Run Code Online (Sandbox Code Playgroud)
ActivityBuilder.kt
@Module
abstract class ActivityBuilder {
@ContributesAndroidInjector(modules = [HomeActivityModule::class])
@PerActivity
abstract fun bindHomeActivity(): HomeActivity
@ContributesAndroidInjector(modules = [SplashScreenModule::class])
@PerActivity
abstract fun bindSplashActivity(): SplashScreenActivity
}
Run Code Online (Sandbox Code Playgroud)
BaseActivity.kt
abstract class …
Run Code Online (Sandbox Code Playgroud) 我在复杂的层次结构中有一个水平 RecyclerView,看起来像这样 -
<ViewPager id="+@id/first">
<ViewPager id="+@id/second"> this viewpager is taking away the scroll event
<SwipeToRefreshLayout>
<RecyclerView> //this one is vertical
<RecyclerView id="@id/rv1"> //this one is horizontal
<RecyclerView id="@id/rv2"> //this one is working fine (different type)
</RecyclerView>
</SwipeToRefreshLayout>
</ViewPager>
</ViewPager>
Run Code Online (Sandbox Code Playgroud)
现在的问题是第二个 ViewPager 正在劫持 Horizontal RV 的滚动条。该垂直 RV 中有 2 种类型的水平 RV(RV1 和 RV2)。但只有其中一个(RV1)面临这个问题。第二个 (RV2) 工作正常。此外,当我按住然后滚动工作正常。当 RV1 已经在滚动并且尚未稳定时,滚动也可以正常工作。我已经提到了其他关于设置 NestedScrolling false 的答案。似乎没有任何工作。
android android-viewpager android-recyclerview android-nestedscrollview
我试图在字符串中找到一个单词,意思是
if abcdef ghijk
是一个字符串,那么substring ghijk
应该给我们1作为频率.但是如果substring是cde
那么应该返回0.
我希望这可以用正则表达式,但我不知道是不是.或者可能是字符串类中有一个方法.
android ×4
c# ×1
dagger ×1
dagger-2 ×1
frequency ×1
react-hooks ×1
react-native ×1
substring ×1