我在片段之间使用动画:
从左侧滑入:
<?xml version="1.0" encoding="utf-8"?>
<set>
<objectAnimator
xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="600"
android:propertyName="x"
android:valueFrom="2000"
android:valueTo="0"
android:valueType="floatType"
android:fillAfter="true"/>
</set>
Run Code Online (Sandbox Code Playgroud)
从右侧滑入:
<?xml version="1.0" encoding="utf-8"?>
<set>
<objectAnimator
xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="600"
android:propertyName="x"
android:valueFrom="0"
android:valueTo="-400"
android:valueType="floatType"/>
</set>
Run Code Online (Sandbox Code Playgroud)
该动画将前一个片段向左移动,而新片段从右移。我将其与片段事务一起使用。
transaction.setCustomAnimations(R.animator.slide_in_from_left,R.animator.slide_in_from_right);
Run Code Online (Sandbox Code Playgroud)
当新片段出现时,我遇到了麻烦,他将其滑到旧片段的下面,为解决此问题,我在新片段上加了一个标高,但我想在21以下使用API解决方案。是否有可能将新片段强制在较旧的片段
在注意到一些断点没有被命中后,我发现这篇文章回答了为什么:
我不记得在 Android Studio 3.3 之前发生过这种情况。有什么方法可以阻止这种行为,以便在条件语句上命中断点?
我为我的项目实现了新的 ViewPager。viewPager2 包含一个片段列表
private class ViewPagerAdapter extends FragmentStateAdapter {
private ArrayList<Integer> classifiedIds;
ViewPagerAdapter(@NonNull Fragment fragment, final ArrayList<Integer> classifiedIds) {
super(fragment);
this.classifiedIds = classifiedIds;
}
@NonNull
@Override
public Fragment createFragment(int position) {
return DetailsFragment.newInstance(classifiedIds.get(position));
}
@Override
public int getItemCount() {
return classifiedIds.size();
}
}
Run Code Online (Sandbox Code Playgroud)
在片段内部我得到了一个水平的 recyclerView
LinearLayoutManager layoutManager = new LinearLayoutManager(getContext(), LinearLayoutManager.HORIZONTAL, false);
recyclerViewPicture.setLayoutManager(layoutManager);
Run Code Online (Sandbox Code Playgroud)
问题是当我尝试滚动 recyclerview 时,viewPager 触摸并切换到下一个片段
当我使用旧的 ViewPager 时,我没有这个问题
android android-recyclerview android-touch-event android-viewpager2
我是android的新手,我不知道如何使用改造过帐
我有自己的服务器,可以将数据返回给我,我需要获取其中一个
我必须发送由edittext占用的“城市名称”,并将其传递到“ ms_data's”关键字(即keyword =“ India”)内
到目前为止,这是我尝试过的...
改造建造者类
public class RetrofitBuilder {
public static Retrofit retrofit;
public static final String BASE_URL = "my url";
public static Retrofit getApiData()
{
if(retrofit==null)
{
retrofit = new Retrofit.Builder().baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create()).build();
}
return retrofit;
}
}
Run Code Online (Sandbox Code Playgroud)
POJO课
public class MessageFromServer {
private String city_name;
public MessageFromServer(String city_name) {
this.city_name = city_name;
}
public String getCity_name() {
return city_name;
}
public void setCity_name(String city_name) {
this.city_name = city_name;
}
@Override
public boolean equals(Object o) { …Run Code Online (Sandbox Code Playgroud)