我试图像flipboard一样在actionBar标签内实现滑动标签.因此,其中一个主要标签将有三个标签.子标签将首先滚动,一旦所有标签滚动,主标签就会聚焦并开始滚动.
有没有人这样做过?请帮忙.
我正在尝试使用recyclelerView创建消息类型的屏幕,它将从底部开始,并在用户到达聊天的最高端时加载更多数据.但我正面临着这个奇怪的问题.
我的recyclerView在调用notifyDataSetChanged时滚动到顶部.由于这个onLoadMore被多次调用.
这是我的代码:
LinearLayoutManager llm = new LinearLayoutManager(context);
llm.setOrientation(LinearLayoutManager.VERTICAL);
llm.setStackFromEnd(true);
recyclerView.setLayoutManager(llm);
Run Code Online (Sandbox Code Playgroud)
**在适配器中
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
if (messages.size() > 8 && position == 0 && null != mLoadMoreCallbacks) {
mLoadMoreCallbacks.onLoadMore();
}
Run Code Online (Sandbox Code Playgroud)
**在活动中
@Override
public void onLoadMore() {
// Get data from database and add into arrayList
chatMessagesAdapter.notifyDataSetChanged();
}
Run Code Online (Sandbox Code Playgroud)
这只是recyclerView滚动到顶部.如果滚动到顶部停止,则此问题将得到解决.请帮我弄清楚这个问题的原因.提前致谢.
android notifydatasetchanged recycler-adapter android-recyclerview linearlayoutmanager
我在我的应用程序中打开一个链接,一旦按下后我想显示HomePage以保留用户更多时间.我一直在努力实现这一目标但却无法做到这一点.我将homeLauncher活动作为我的top和baseActivity.
DeepLink Tap>打开所需的活动>用户按下后退按钮>检查其上一个活动但不是homeActivity>如果是,请将用户导航到homeActivity.
尝试以下代码:
@Override
public void onBackPressed() {
ActivityManager mngr = (ActivityManager) getSystemService( ACTIVITY_SERVICE );
List<ActivityManager.RunningTaskInfo> taskList = mngr.getRunningTasks(10);
if(taskList.get(0).numActivities == 1 && taskList.get(0).topActivity.getClassName().equals(this.getClass().getName())){
//// This is last activity
}
else{
//// There are more activities in stack
}
super.onBackPressed();
}
Run Code Online (Sandbox Code Playgroud)
我也试过isTaskRoot但结果是一样的.它没有给出正确的答案.请帮助
android android-intent android-activity back-stack activity-manager
我想合并两个不同类型的列表并创建另一个包含来自两个列表的数据的列表。此外,合并应该只在标识符匹配时发生(如两个列表中的 id 匹配)
Employee(val employeeId: Int,
val employeeName: String,
val address: String)
LaptopInfo(val laptopId: Int,
val employeeId: String,
val team: String)
EmployeeLaptopInfo(val laptopId: Int,
val employeeId: String,
val employeeName: String,
val address: String)
Run Code Online (Sandbox Code Playgroud)
所以有Employee
and 的列表,LaptopInfo
我想添加 EmployeeLaptopInfo 到List<EmployeeLaptopInfo>
只有当两个列表中的 employeeId 匹配时
val employeeLaptopInfoList = mutableListOf<EmployeeLaptopInfo>()
val employeeIds = employeeList.map { it.employeeId }.toSet()
lapTopInfoList.filter { employeeIds.contains(it.employeeId) }
.map {
val employeeLaptopInfo = EmployeeLaptopInfo(it.laptopId, laptopId.employeeId, "can't get info", "can't get info")
employeeLaptopInfoList.add(employeeLaptopInfo)
}
Run Code Online (Sandbox Code Playgroud)
但是这样我就不会从两个列表中获得详细信息。有没有办法在不使用 for 循环的情况下以有效的方式做到这一点。
我想检查一个url是否有效youtube url,以便我可以在视图中显示,否则我将隐藏视图.
Java中是否有正则表达式可以帮助我检查url是否有效.目前我正在使用这个正则表达式,但我想这不是我想要的那个:
String youTubeURl = "https://www.youtube.com/watch?v=Btr8uOU0BkI";
String pattern = "https?:\\/\\/(?:[0-9A-Z-]+\\.)?(?:youtu\\.be\\/|youtube\\.com\\S*[^\\w\\-\\s])([\\w\\-]{11})(?=[^\\w\\-]|$)(?![?=&+%\\w]*(?:['\"][^<>]*>|<\\/a>))[?=&+%\\w]*";
if (!youTubeURl.isEmpty() && youTubeURl.matches(pattern)) {
/// Valid youtube URL
}
else{
// Not Valid youtube URL
}
Run Code Online (Sandbox Code Playgroud) 当同一部手机连接到不同的MacBooks时,由于要重新安装Android调试版本,所有开发机器(MacBooks)是否可以共享同一调试证书?这将有助于避免在开发设备上重新安装。
android android-studio android-gradle-plugin android-app-signing
我想创建一个completable并在后台线程中运行它,但它不是打电话Action
的run()
时候,我就订阅Schedulers.io()
基本上我想通过RxAndroid执行以下操作:
Thread t = new Thread(new Runnable() {
public void run() {
doSomething();
}
});
t.start();
Run Code Online (Sandbox Code Playgroud)
使用RxAndroid,我正在执行以下操作:
Completable.fromAction(new Action() {
@Override
public void run() throws Exception {
doSomething();
}
}).subscribeOn(Schedulers.io());
Run Code Online (Sandbox Code Playgroud)
它的run()
方法是没有得到所谓的如果我这样做Schedulers.io()
,但如果我这样做会被调用subscribe()
。
订阅时,我找不到它为什么运行Schedulers.io()
。
当前存在 PolymorphicJsonAdapterFactory 和 Kotlins 密封类的问题。我有一个返回多态主组件的 API,我试图在 Kotlin 中使用 Moshi 解析和创建多态对象,但出现以下错误:
Caused by: java.lang.IllegalArgumentException: Cannot serialize abstract class home.HomeComponent
for class home.HomeComponent
for java.util.List<home.HomeComponent> components
for class home.HomeContent
Run Code Online (Sandbox Code Playgroud)
代码:
sealed class HomeComponent(@Json(name = "_type") val type: HomeContentType) {
data class BannerComponent(@field:Json(name = "_id")
val id: String,
val image: String) : HomeComponent(HomeContentType.banner)
data class SpecialProductsComponent(@field:Json(name = "_id")
val id: String,
val style: List<Product>) : HomeComponent(HomeContentType.specialProducts)
data class CarouselBannerComponent(@field:Json(name = "_id")
val id: String,
val style: String,
val images: List<String>) : HomeComponent(HomeContentType.carousel)
} …
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 moshi 将 Map 转换为 json 但我找不到任何帮助。
val attentionNumbepAdapter: JsonAdapter<Map<String, Employee>> = moshi
.adapter(Types.newParameterizedType(Map::class.java, String::class.java, Employee::class.java))
Run Code Online (Sandbox Code Playgroud)
但它给出了IllegalArgumentException
. 知道如何正确解决这个问题吗?
当我想将UIPicker分配为UITextField的inputView时,我遇到了问题.它显示错误" Assinnement to readonly property ".请帮助,因为我认为它与财产合成无关.
我在下面添加了我的代码:
@interface DriverWaitingDetails : UIViewController<UITextFieldDelegate,UIPickerViewDataSource, UIPickerViewDelegate>
{
IBOutlet UILabel *baseLabel;
IBOutlet UITableView *driverTableView;
IBOutlet UIPickerView *basePicker;
}
@property(nonatomic, retain) IBOutlet UIPickerView *basePicker;
@property(nonatomic,retain)IBOutlet UILabel *baseLabel;
@property(nonatomic,retain)IBOutlet UITableView *driverTableView;
@end
Run Code Online (Sandbox Code Playgroud)
执行代码: -
-(void)viewDidLoad
{
basePicker=[[UIPickerView alloc] initWithFrame:CGRectMake(0,100,320, 500)];
self.navigationItem.title=@"Driver Table";
baseLabel.userInteractionEnabled = YES;
basePicker.delegate = self;
basePicker.dataSource = self;
[basePicker setShowsSelectionIndicator:YES];
baseLabel.inputView=nil;
[super viewDidLoad];
}
Run Code Online (Sandbox Code Playgroud)
附上截图: -
我创建了一个SherlockFragmentActivity,它有三个ViewPager片段.但是现在我想在NavigationDrawer中使用这个Activity但是我很困惑如何做到这一点.Google+应用有这种实现,但我想知道如何实现这一目标.
NavigationDrawer将具有以下UI元素:
使用导航抽屉是否可以进行这种布局如果是,我应该怎么做.如果没有,我应该怎么做才能在我的应用程序中实现这种导航.
android android-fragments android-viewpager navigation-drawer
android ×8
java ×2
json ×2
kotlin ×2
moshi ×2
arraylist ×1
back-stack ×1
flipboard ×1
hashmap ×1
ios ×1
iphone ×1
jsonparser ×1
merge ×1
regex ×1
rx-android ×1
rx-java ×1
uipickerview ×1
uitextfield ×1
youtube ×1