我有一ConstraintLayout对夫妇的意见,由于某种原因,我textview在句子结束时被切断了.它textview被限制在左侧和顶部.是的tv_product_description textview.
<android.support.constraint.ConstraintLayout
android:id="@+id/ll_product_holder"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:layout_marginTop="16dp"
android:background="@drawable/drawable_border"
android:orientation="vertical">
<com.facebook.drawee.view.SimpleDraweeView
android:id="@+id/iv_product_image"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_marginBottom="8dp"
android:layout_marginLeft="9dp"
android:layout_marginStart="9dp"
android:layout_marginTop="13dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toBottomOf="@+id/price_holder"
fresco:actualImageScaleType="centerCrop"
fresco:placeholderImage="@drawable/placeholder2"/>
<TextView
android:id="@+id/tv_product_id"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="9dp"
android:layout_marginStart="9dp"
android:layout_marginTop="13dp"
android:text="@{historyItem.productId}"
app:layout_constraintLeft_toRightOf="@+id/iv_product_image"
app:layout_constraintTop_toBottomOf="@+id/price_holder"/>
<TextView
android:id="@+id/tv_product_description"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="9dp"
android:layout_marginStart="9dp"
android:ellipsize="end"
android:maxLines="2"
android:text="@{historyItem.productDescription}"
app:layout_constraintLeft_toRightOf="@+id/iv_product_image"
app:layout_constraintTop_toBottomOf="@+id/tv_product_id"/>
</android.support.constraint.ConstraintLayout>
Run Code Online (Sandbox Code Playgroud)
我要么拍照,要么从图库中选择一张照片,然后按应有的方式在 ImageView 中显示它(就旋转而言)。但是,每当我将其上传到服务器时,它总是以横向模式上传,即使它在我的画廊中处于纵向模式。我该如何解决这个问题?
private void takePhoto() {
Intent takePhoto = new Intent();
takePhoto.setAction(MediaStore.ACTION_IMAGE_CAPTURE);
File photoFile = null;
try {
photoFile = imagePath();
} catch (IOException e) {
Log.d(TAG, "Take Photo: " + e.getMessage());
}
takePhoto.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photoFile));
startActivityForResult(takePhoto, REQUEST_IMAGE);
}
private File imagePath() throws IOException {
String timeStamp = new java.text.SimpleDateFormat("yyyyMMdd_HHmmss", Locale.getDefault()).format(new Date());
String imageFileName = "IMAGE_" + timeStamp + "_";
File storageDirectory = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
File image = File.createTempFile(imageFileName, ".jpg", storageDirectory);
mImageLocation = image.getAbsolutePath();
return image;
}
private void uploadMultipart() { …Run Code Online (Sandbox Code Playgroud) 我有一个片段A,只需点击一个按钮就会启动片段B,其中包含一个RecyclerView.在片段B中,单击一个项目EventBus时,该值需要传递给片段A.但是,由于某种原因,该值永远不会到达片段A.
片段A.
public class OrderSummaryFragment extends BaseFragment implements OrderSummaryView {
private static final String ARG_PARAM1 = "param1";
public static final String ACTION_BACK = OrderSummaryFragment.class.getName() + ".back";
public static final String ACTION_HIDE_ACTION_BAR = OrderSummaryFragment.class.getName() + ".hide_action_bar";
public static final String ACTION_SHOW_ACTION_BAR = OrderSummaryFragment.class.getName() + ".show_action_bar";
public static final String ACTION_CHANGE_ADDRESS = OrderSummaryFragment.class.getName() + ".select_address";
FragmentOrderSummaryBinding mBinder;
Shop mShop;
OrderSummaryPresenter mPresenter;
public OrderSummaryFragment() {
}
public static OrderSummaryFragment newInstance(Shop shop) {
OrderSummaryFragment fragment = new OrderSummaryFragment();
Bundle args …Run Code Online (Sandbox Code Playgroud) 我试图实现以下场景 - >记录从API获取并存储到DB中.有些记录可能会被点击favorite,即使从API获取新数据,它们仍应保持这样.但是,我似乎找不到如何在不替换favorite整行的情况下替换那些已经被选中的记录的方法.我已经尝试逐个插入记录,并以某种方式在插入检查是否已经存在记录,但我似乎无法用RxJava来解决它.
Dao
@Dao
interface KafanaDao {
@Insert
fun insertSingleKafana(kafana: Kafana)
@Insert(onConflict = OnConflictStrategy.REPLACE)
fun insertAll(kafani: List<Kafana>)
@Query("SELECT * FROM ${Constants.KAFANI_TABLE_NAME}")
fun getKafani(): Single<List<Kafana>>
@Query("SELECT * FROM ${Constants.KAFANI_TABLE_NAME} WHERE name = :name")
fun getSingleKafana(name: String): Single<Kafana>
@Query("UPDATE ${Constants.KAFANI_TABLE_NAME} SET isFavorite = :isFavorite WHERE name = :name")
fun setFavourite(name: String, isFavorite: Int)
}
Run Code Online (Sandbox Code Playgroud)
然后我一个接一个地插入记录,但是如何检查它们是否已经存储在数据库中?
fun insertSingleKafanaInDb(kafana: Kafana) {
Observable.fromCallable { kafanaDao.insertSingleKafana(kafana) }
.subscribeOn(Schedulers.io())
.subscribe {
Timber.d("Inserted ${kafana.name} kafani from API in DB...")
}
}
fun getKafaniFromApi(): …Run Code Online (Sandbox Code Playgroud) 我正在使用RxJava/Kotlin和Room and Retrofit.我确信我刚开始学习RxJava时没有写东西.方案是我打电话检查数据库中是否有喜欢的记录并将它们放入List中,从API获取数据并将其插入数据库,使用上一个收藏夹列表更新数据库并获取所有记录,现在更新,列表.我得到了我的片段中的结果,但每次我得到它就好像我得到1个不太喜欢的项目,直到我得到没有喜欢的项目.
Repository
fun getKafaniFromApi(): Observable<List<Kafana>> {
return apiService.getKafani().toObservable().doOnNext {
insertKafaniInDb(it)
}
}
fun getKafaniFromDb(): Observable<List<Kafana>> {
return kafanaDao.getKafani().toObservable()
}
fun insertKafaniInDb(kafani: List<Kafana>) {
Observable.fromCallable { kafanaDao.insertAll(kafani) }
.subscribeOn(Schedulers.io())
.subscribe {
Timber.d("Inserted ${kafani.size} kafani from API in DB...")
}
}
fun getFavoriteKafani(): Single<List<Kafana>> {
return kafanaDao.getFavoriteKafani()
}
fun setKafanaFavorite(kafana: Kafana, isFavorite: Int) {
return kafanaDao.setFavourite(kafana.name, isFavorite)
}
fun updateFavoriteKafana(kafana: Kafana) {
return kafanaDao.updateFavoriteKafana(kafana)
}
Run Code Online (Sandbox Code Playgroud)
在我的 viewmodel
fun get(): Observable<List<Kafana>> {
return kafanaRepository.getFavoriteKafani()
.toObservable()
.doOnNext { kafaniList = it } …Run Code Online (Sandbox Code Playgroud)