首先啥也别说,先引入support包。
compile 'com.android.support:design:22.2.1'
FloatingActionButton & SnackBar
这两者的使用都比较简单,所以一起说下。
FloatingActionButton其实就可以视作一个ImageButton,事实上他也是继承ImageButton。而SnackBar的使用方法和使用场景感觉和Toast有点相似。所以就写一个非常简单的例子,点击FAB,弹出SnackBar。
1、xml,FAB的背景颜色默认为theme的colorAccent,一般不用修改也搭调。
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<android.support.design.widget.FloatingActionButton
android:id="@+id/fabBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|right"
android:src="@drawable/ic_plus"/>
</FrameLayout>
2、使用
private FloatingActionButton fab;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
fab = (FloatingActionButton) findViewById(R.id.fabBtn);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Snackbar.make(fab, "Hello. I am a Snackbar!", Snackbar.LENGTH_SHORT)
.setAction("Undo", new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "undo", Toast.LENGTH_SHORT).show();
}
})
.show();
}
});
}
问题
这时有2个bug现象
1、在我的4.3(API18)真机,默认会有一个margin效果,而在5.0(API21)模拟器上则没有。
这个问题可以通过建立两个版本尺寸来解决,这也是常见的屏幕适配方案。
r