我使用新的 android 小部件 ViewPager2 版本 1.0.0-alpha03,当我在它上面设置点击侦听器时,方法 onClick() 没有被调用。
我的活动课:
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
supportFragmentManager.beginTransaction()
.add(R.id.fragmentContent, SecondFragment.newInstance(), SecondFragment.TAG)
.addToBackStack(SecondFragment.TAG)
.commit()
}
}
Run Code Online (Sandbox Code Playgroud)
我的片段:
class SecondFragment : Fragment() {
companion object {
val TAG = SecondFragment::class.java.canonicalName
fun newInstance(): SecondFragment = SecondFragment()
}
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
return inflater.inflate(R.layout.fragment_second, container, false)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
viewPager2.setOnClickListener {
Log.d("logi", "click : ")
}
} …Run Code Online (Sandbox Code Playgroud) 我在 ChipGroup 中有 Chips,在 HorizontalScrollView 中有这个 ChipGroup。但我的问题是最后一个芯片上的 marginEnd 不工作!
我尝试以编程方式更改布局参数,但没有成功
<HorizontalScrollView
android:id="@+id/chips_container"
android:layout_width="0dp"
android:layout_height="56dp"
android:layout_gravity="center_vertical"
android:visibility="gone"
app:layout_constraintBottom_toTopOf="@+id/dividerSmartReplies"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
tools:visibility="visible">
<com.google.android.material.chip.ChipGroup
android:id="@+id/chip_group"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
app:chipSpacing="8dp"
app:singleLine="true"
app:singleSelection="true">
<com.google.android.material.chip.Chip
style="@style/Widget.MaterialComponents.Chip.Choice"
android:layout_width="wrap_content"
android:layout_height="42dp"
android:layout_marginStart="8dp"
android:textColor="@color/selector_smart_reply_chip_text"
app:checkedIconVisible="false"
app:chipBackgroundColor="@color/selector_smart_reply_chip"
app:chipCornerRadius="21dp"
app:chipStrokeColor="@color/app_base_blue"
app:chipStrokeWidth="1dp" />
<com.google.android.material.chip.Chip
style="@style/Widget.MaterialComponents.Chip.Choice"
android:layout_width="wrap_content"
android:layout_height="42dp"
android:textColor="@color/selector_smart_reply_chip_text"
app:checkedIconVisible="false"
app:chipBackgroundColor="@color/selector_smart_reply_chip"
app:chipCornerRadius="21dp"
app:chipStrokeColor="@color/app_base_blue"
app:chipStrokeWidth="1dp" />
<com.google.android.material.chip.Chip
style="@style/Widget.MaterialComponents.Chip.Choice"
android:layout_width="wrap_content"
android:layout_height="42dp"
android:textColor="@color/selector_smart_reply_chip_text"
app:checkedIconVisible="false"
app:chipBackgroundColor="@color/selector_smart_reply_chip"
app:chipCornerRadius="21dp"
app:chipStrokeColor="@color/app_base_blue"
app:chipStrokeWidth="1dp" />
<com.google.android.material.chip.Chip
style="@style/Widget.MaterialComponents.Chip.Choice"
android:layout_width="wrap_content"
android:layout_height="42dp"
android:layout_marginEnd="8dp"
android:textColor="@color/selector_smart_reply_chip_text"
app:checkedIconVisible="false"
app:chipBackgroundColor="@color/selector_smart_reply_chip"
app:chipCornerRadius="21dp"
app:chipStrokeColor="@color/app_base_blue"
app:chipStrokeWidth="1dp" />
</com.google.android.material.chip.ChipGroup>
</HorizontalScrollView>
Run Code Online (Sandbox Code Playgroud)
最后一个芯片后我需要额外的空间。ChipGroup 的 padding 有效,但没有预期的 …
我正在尝试使用新的android体系结构组件,但是一时我很困惑。
我创建了一个ViewModel类
public class BuyViewModel extends ViewModel {
private BuyRepository buyRepository;
private LiveData<Adverts> advertsLiveData;
private boolean isLoading;
private int currentPage;
@Inject
public BuyViewModel(BuyRepository buyRepository) {
this.buyRepository = buyRepository;
}
public void init(int currentPage) {
this.currentPage = currentPage;
if (this.advertsLiveData != null) {
return;
}
Timber.tag("logi").d("BuyViewModel > init -> ");
advertsLiveData = buyRepository.getAdverts(currentPage);
}
public LiveData<Adverts> getAdvertsLiveData() {
return advertsLiveData;
}
}
Run Code Online (Sandbox Code Playgroud)
在我的LifeCycleFragment中观察LiveData
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
buyViewModel = ViewModelProviders.of(this, viewModelFactory).get(BuyViewModel.class);
buyViewModel.init(1);
buyViewModel.getAdvertsLiveData().observe(this, adverts -> {
Timber.tag("logi").d("BuyFragment …Run Code Online (Sandbox Code Playgroud) android viewmodel android-livedata android-architecture-components