我有个问题.我希望setTimeout在2秒后使用角度调用函数,但我得到了这个:
错误:找不到模块:错误:无法解析'计时器'; 这是我的功能:
login(user) {
console.log(user.value);
this.loginService.loginUser(user.value);
// this.user = this.loginService.getUser();
setTimeout(() => {
this.user = this.loginService.getUser();
}, 2000);
if (this.user === undefined) {
console.log('username or password incorrect');
} else {
console.log(this.user);
this.navbar.connectComps(this.user);
this.navbar.getCheck();
}
}
Run Code Online (Sandbox Code Playgroud)
请告诉我该怎么做才能解决这个问题.
我正在使用在Google I/O 2018上呈现的Android导航,似乎我可以通过绑定到某个视图或使用NavHost从Fragment获取它来使用它.但我需要的是根据几个条件从我的第一个片段导航到ViewModel中的另一个特定视图.因为ViewModel,我延伸AndroidViewModel,但我不明白下一步该怎么做.我无法转换getApplication为Fragment/Activity而我无法使用NavHostFragment.此外,我不能只导航到导航,onClickListener因为startFragment只包含一个导航ImageView.我该如何导航ViewModel?
class CaptionViewModel(app: Application) : AndroidViewModel(app) {
private val dealerProfile = DealerProfile(getApplication())
val TAG = "REGDEB"
fun start(){
if(dealerProfile.getOperatorId().isEmpty()){
if(dealerProfile.isFirstTimeLaunch()){
Log.d(TAG, "First Time Launch")
showTour()
}else{
showCodeFragment()
Log.d(TAG, "Show Code Fragment")
}
}
}
private fun showCodeFragment(){
//??
}
private fun showTour(){
//??
}
}
Run Code Online (Sandbox Code Playgroud)
我的片段
class CaptionFragment : Fragment() {
private lateinit var viewModel: CaptionViewModel
private val navController by …Run Code Online (Sandbox Code Playgroud) 我正在实现一个图库应用程序,它有一个 Fragment,其中包含一个带有图像的 RecyclerView,单击图像我转到 ViewPager 以循环浏览图像。
现在,我正在尝试实现本视频中的入口动画。问题是动画不起作用,我显然遗漏了一些东西(仅显示与转换相关的代码):
视图页面:
public class ViewPagerFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_viewpager, container, false);
Transition transition = TransitionInflater.from(getContext()).inflateTransition(R.transition.fragment_transition);
setSharedElementEnterTransition(transition);
postponeEnterTransition();
return view;
}
Run Code Online (Sandbox Code Playgroud)
网格适配器:
public class GridAdapter extends RecyclerView.Adapter<GridAdapter.ViewHolder> {
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
holder.setPhotoImage(new File(mArrayOfPhotos.get(position).photo));
ViewCompat.setTransitionName(holder.photoImage, mPhotoObjects.get(position).photo);
}
@Override
public void onClick(View view) {
// pass an image view that is being clicked...
// ...via listener to …Run Code Online (Sandbox Code Playgroud) android android-fragments android-viewpager android-transitions android-glide
我猜不小心按下了一个键或组合键更改了Android Studio中的设置,此后android studio表现得很怪异,无法让我正确选择代码。
看下面的图片。
我已经检查了Android Studio设置,但找不到与此相关的任何内容。
PS我正在使用Windows 10。
当我尝试向项目添加新库然后运行我的应用程序时,我收到此错误:
程序类型已存在:android.support.design.widget.CoordinatorLayout $ Behavior
以下是我想添加的库
implementation 'com.theartofdev.edmodo:android-image-cropper:2.7.0'implementation 'com.github.yalantis:ucrop:2.2.2'这是我的应用级gradle文件
apply plugin: 'com.android.application'
android {
compileSdkVersion 26
defaultConfig {
applicationId "com.techxee.adarsh.chatbeta"
minSdkVersion 15
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:27.0.2'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
implementation 'com.google.firebase:firebase-auth:11.8.0'
implementation 'com.android.support:design:26.1.0'
implementation 'com.android.support:support-v4:26.1.0'
implementation 'com.google.firebase:firebase-database:11.8.0'
implementation 'de.hdodenhof:circleimageview:2.2.0'
//For firebase UI
implementation 'com.firebaseui:firebase-ui-database:3.1.3'
implementation 'com.google.firebase:firebase-storage:11.8.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
//For bottom …Run Code Online (Sandbox Code Playgroud) 我一直在搜索并且没有找到嵌套片段与父片段通信的最佳方法.Android文档声明:
所有Fragment-to-Fragment通信都是通过相关的Activity完成的.两个碎片永远不应该直接通信.
假设我有一个Gallery应用程序,有一个ViewPagerFragment(父级)和ImageFragment(子级),用于在单击时全屏显示图像.我需要将文件的ArrayList从我的父片段传递给子片段.什么是正确的方法呢?
1)创建于ArrayList中的一个getter 父片段,并使用getParentFragment()在孩子片段访问此方法?
2)实现一个接口并浏览Activity,但是如果它没有ID,我如何从Activity中找到子片段?
3)或者在父片段中使用它:
ChildFragment fragment =(ChildFragment)getChildFragmentManager().findFragmentById(R.id.child_fragment_id);
只需在子片段中使用setter .
但是我又如何获得childFragment的ID?
提前谢谢大家
我正在实施一个天气应用程序,它通过 Retrofit 从 DarkSky 获取预报,并从 GoogleFusedLocationClient 获取位置。我的目标是通过应用程序关闭和配置更改来保存 UI 数据。我使用 Room+ViewModel+LiveData 和 Repository 模型实现了它。但是我在片段中而不是在存储库中获取我的位置和预测,目标是将其移动到存储库。
以便存储库查看数据库,如果它是空的,则从网络中获取数据。
我当前的存储库:
public class UIRepository {
private UIDao mUIDao;
private LiveData<List<UIData>> mAllUIData;
UIRepository(Application application) {
PhotoDatabase db = PhotoDatabase.getDatabase(application);
mUIDao = db.uiDao();
mAllUIData = mUIDao.getAllUIData();
}
LiveData<List<UIData>> getAllUIData() {
return mAllUIData;
}
public void insert(UIData uiData) {
new insertAsyncTask(mUIDao).execute(uiData);
}
private static class insertAsyncTask extends AsyncTask<UIData, Void, Void> {
private UIDao mAsyncDao;
insertAsyncTask(UIDao uiDao) {
mAsyncDao = uiDao;
}
@Override
protected Void doInBackground(UIData... uiData) {
mAsyncDao.insert(uiData[0]);
return …Run Code Online (Sandbox Code Playgroud) java android android-fragments android-room android-architecture-components
android ×6
java ×2
android-architecture-components ×1
android-room ×1
angular ×1
gradle ×1
ide ×1
javascript ×1
kotlin ×1
module ×1
mvvm ×1
settimeout ×1
ucrop ×1