Fab 按钮不工作
Fab button not working
My Activity MainFragment extends ListFragment 并使用这部分代码创建项目
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
convertView = getActivity().getLayoutInflater()
.inflate(R.layout.list_item_drs, parent, false);
holder = new ViewHolder();
holder.dateTextView = (TextView)convertView.findViewById(R.id.drs_dateTextView);
holder.dsMainDisplay = (ImageView)convertView.findViewById(R.id.cloud_MainView);
getListView().setDivider(null);
getListView().setDividerHeight(0);
getListView().setSelector(android.R.color.transparent);
convertView.setTag(holder);
}else {
holder = (ViewHolder) convertView.getTag();
}
Cloud c = getItem(position);
return convertView;
}
}
我想将 Fab 按钮放在主视图的顶部|底部位置,所以我使用 onCreateView 方法来膨胀我创建的 xml 布局 list_view 我在其中描述了 Fab 按钮
@TargetApi(11)
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup parent,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
View v = inflater.inflate(R.layout.list_view,null);
FrameLayout fl = (FrameLayout)inflater.inflate(R.layout.list_view, parent,false);
FloatingActionButton fab = (FloatingActionButton) fl.findViewById(R.id.addNew);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick (View view) {
//Intent i = new Intent(getActivity(), AddActivity.class);
// getActivity().startActivity(i);
}
});
list_view xml 当我使用其他类型的布局时,这段代码在 FrameLayout 中消失了
<ListView android:id="@id/android:list"
android:layout_height="match_parent"
android:layout_width="match_parent"/>
<android.support.design.widget.FloatingActionButton
android:id="@+id/addNew"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_margin="@dimen/fab_margin"
app:useCompatPadding="true"
app:elevation="5dp"
app:pressedTranslationZ="0dp"
android:src="@android:drawable/ic_dialog_email"/>
现在 Fab 按钮出现在正确的位置,并在我滚动列表时保持在原位,但现在它没有显示任何响应。有什么解决办法吗?
由于 fab 是在 list_view.xml
中定义的,因此您必须通过
访问它
FloatingActionButton fab = (FloatingActionButton) v.findViewById(R.id.addNew);
那么onCreateView
必须return刚刚膨胀的视图,即
return v;
My Activity MainFragment extends ListFragment 并使用这部分代码创建项目
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
convertView = getActivity().getLayoutInflater()
.inflate(R.layout.list_item_drs, parent, false);
holder = new ViewHolder();
holder.dateTextView = (TextView)convertView.findViewById(R.id.drs_dateTextView);
holder.dsMainDisplay = (ImageView)convertView.findViewById(R.id.cloud_MainView);
getListView().setDivider(null);
getListView().setDividerHeight(0);
getListView().setSelector(android.R.color.transparent);
convertView.setTag(holder);
}else {
holder = (ViewHolder) convertView.getTag();
}
Cloud c = getItem(position);
return convertView;
}
}
我想将 Fab 按钮放在主视图的顶部|底部位置,所以我使用 onCreateView 方法来膨胀我创建的 xml 布局 list_view 我在其中描述了 Fab 按钮
@TargetApi(11)
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup parent,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
View v = inflater.inflate(R.layout.list_view,null);
FrameLayout fl = (FrameLayout)inflater.inflate(R.layout.list_view, parent,false);
FloatingActionButton fab = (FloatingActionButton) fl.findViewById(R.id.addNew);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick (View view) {
//Intent i = new Intent(getActivity(), AddActivity.class);
// getActivity().startActivity(i);
}
});
list_view xml 当我使用其他类型的布局时,这段代码在 FrameLayout 中消失了
<ListView android:id="@id/android:list"
android:layout_height="match_parent"
android:layout_width="match_parent"/>
<android.support.design.widget.FloatingActionButton
android:id="@+id/addNew"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_margin="@dimen/fab_margin"
app:useCompatPadding="true"
app:elevation="5dp"
app:pressedTranslationZ="0dp"
android:src="@android:drawable/ic_dialog_email"/>
现在 Fab 按钮出现在正确的位置,并在我滚动列表时保持在原位,但现在它没有显示任何响应。有什么解决办法吗?
由于 fab 是在 list_view.xml
中定义的,因此您必须通过
FloatingActionButton fab = (FloatingActionButton) v.findViewById(R.id.addNew);
那么onCreateView
必须return刚刚膨胀的视图,即
return v;