- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 ActionBarSherlock 根据当前正在查看的选项卡显示不同的列表 fragment 。到目前为止,尽管我什至无法通过尝试显示我的 fragment 。我可以看到它正在被实例化和创建,但它根本没有显示在 View 中。
这是我实现 SherlockFragmentActivity 的 Activity :
public class MyListView extends SherlockFragmentActivity implements ActionBar.TabListener{
@Override
public void onCreate(Bundle savedInstanceState) {
setTheme(com.actionbarsherlock.R.style.Theme_Sherlock); //Used for theme switching in samples
super.onCreate(savedInstanceState);
setContentView(R.layout.tab_navigation);
MyListFrag listFrag = (MyListFrag) getSupportFragmentManager()
.findFragmentById(R.id.fragment1);
listFrag.update(ViewActivity.livePoints);
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.add(R.id.fragment1, listFrag);
fragmentTransaction.commit();
getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
for (int i = 1; i <= 3; i++) {
ActionBar.Tab tab = getSupportActionBar().newTab();
tab.setText("Tab " + i);
tab.setTabListener(this);
getSupportActionBar().addTab(tab);
}
}
@Override
public void onTabReselected(Tab tab, FragmentTransaction transaction) {
}
@Override
public void onTabSelected(Tab tab, FragmentTransaction transaction) {
}
@Override
public void onTabUnselected(Tab tab, FragmentTransaction transaction) {
}
}
您可以看到我已经尝试使用 fragment 管理器将 fragment 添加到 Activity 中,但我也在尝试通过 xml 添加它,这目前对我来说也不起作用。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:padding="20dip">
<fragment
android:name="core.MyListFrag"
android:id="@+id/fragment1"
android:layout_weight="1"
android:layout_width="0px"
android:layout_height="match_parent"
/>
</LinearLayout>
最后是我正在使用的 listfragment 类。我想要做的是使用我通过扩展 baseadapter 创建的自定义适配器填充列表,但我不确定我是否正确地执行了该操作,这可能是问题的一部分。
public class MyListFrag extends SherlockListFragment{
MarkItemAdapter mia;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mia = new MarkItemAdapter(this.getActivity(), MyViewActivity.livePoints);
setListAdapter(mia);
Toast.makeText(getSherlockActivity(), "frag started"+MyViewActivity.livePoints.size(), Toast.LENGTH_LONG).show();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.list_frag_layout, container, false);
}
public void updateUrl(List<Points> newList) {
if(mia!=null){
mia.points.clear();
mia.points = newList;
mia.notifyDataSetChanged();
}else{
mia.points = newList;
mia.notifyDataSetChanged();
}
}
class MarkItemAdapter extends BaseAdapter{
List<Points> points = null;
Context cntx = null;
LayoutInflater myInflater;
int itemPosition =0;
ViewHolder holder;
public MarkItemAdapter(Context cntx,List<Points> points){
this.points = points;
this.cntx = cntx;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return marks.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
itemPosition = position;
if (convertView==null) {
convertView = myInflater.inflate(R.layout.point_row_item, null);
holder = new ViewHolder();
holder.description = (TextView) convertView.findViewById(R.id.point_description);
holder.distance = (TextView) convertView.findViewById(R.id.point_distance);
holder.point_image = (ImageView) convertView.findViewById(R.id.point_image);
holder.view_point = (ImageButton) convertView.findViewById(R.id.view_mark);
holder.rate_point = (RatingBar) convertView.findViewById(R.id.rate_point);
convertView.setTag(holder);
}else{
holder = (ViewHolder) convertView.getTag();
}
holder.description.setText(points.get(itemPosition).title);
holder.distance.setText(points.get(itemPosition).getDistanceString());
holder.view_point.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
//do stuff
}
});
//add logic for rating bar
return convertView;
}
}
private class MyViewHolder{
ImageView mark_image;
TextView description;
TextView distance;
ImageButton view_mark;
RatingBar rate_mark;
}
}
我可以添加其他 XML 布局,如果这有助于任何人帮助我,但我将它们排除在外,因为我很确定问题出在我的 Java 而不是布局。当您第一次使用它们时, fragment 肯定不是很简单。我不确定我是否必须使用 onAttach()
或其他东西,查看 Android 文档并查看所有其他教程让我现在完全困惑。在我知道我已经接近之前就开始玩 fragment ,所以我不想把十个教程放在一堆代码中,只是为了让弗兰肯斯坦 fragment 继续下去。
最佳答案
我假设您发布的 xml 文件是 R.layout.tab_navigation 看起来没问题
如果你没有像“找不到类...”或“错误膨胀布局...”这样的错误,那很好
使用 fragment 的想法是让 Activity (SherlockFragmentActivity) 成为一个容器,以及您可以在旋转屏幕时添加/替换的 child ( fragment )或使用平板电脑以获得灵活的界面。
这种方式也可以用于主/从流程,例如albumList->imageList->slideShow
因此,您的 MyListView 扮演着容器 的角色,并膨胀了您发布的 xml R.layout.tab_navigation。 MyListFrag 类将替换 balise fragment 并自身膨胀 R.layout.list_frag_layout
现在,当使用 fragment 时,您应该考虑使用 replace 而不是 add
一个问题,你想用 fragment 做什么(在这种情况下)?
关于android - 使用 ActionBarSherlock 看不到我的 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11115622/
我通过创建两个不同的项目、库项目和我自己的 android 项目实现了 ActionBarSherlock。现在我正在考虑将库项目放在我的应用程序库目录中并将该项目附加到我的应用程序。这在逻辑上可能吗
与许多其他 Android 开发人员一样,我安装了 Android Studio,但是如何将 actionbarsherlock 安装到 Android Studio 中? 有什么帮助吗?我什至不知道
您好,我在导入后遇到了 ActionBarSherlock 的问题。 我做了以下步骤: 我从库文件夹中导入了东西 我检查了项目是否设置为 IsLibrary 我选择了项目构建目标:Android 4.
我正在迁移我的代码以使用 Actionbarsherlock。我已经完成了我需要的所有代码调整,并且我的项目编译正常没有错误,但是我得到以下异常: java.lang.NoClassDefFoundE
我在 Eclipse 中有一个现有项目 MyProject,它使用库 actionbarsherlock(4.3.1 版)。该项目在 android studio 中编译并运行,但我没有得到构建变体。
我想要 Sherlock 操作栏左侧的微调器,但由于标准行为,它出现在右侧。[见附件图片 如何解决? 最佳答案 好的,我已经通过使用导航列表而不是在 menu.xml 中手动添加微调器来完成此操作:
我正在尝试使用 Eclipse Indigo 和 ADT r20 构建一个带有 ActionBarSherlock 4.1 的小型示例应用程序。 我创建了一个包含空白 Activity 的新 Andr
我已经坚持了好几天/几周了。我正在尝试为 actionbarsherlock 添加 aar,但我一直收到此错误: Failed to notify project evaluation listene
我通过 eclipse 创建了一个新的 Android 项目,其中包含 MainActivity。我将 ActionBarSherlock 添加到项目中(“属性”>“Android”,然后单击“添加”
尝试从 ActionBarSherlock 开始。下载库。使用上次更新设置 ADT,SDK 相同。 尝试进行简单的 Activity : import com.actionbarsherlock.ap
我一直在尝试将 ActionbarSherlock maven 依赖项添加到我的项目中 com.actionbarsherlock library 4.2.0 在我的 po
我想使用支持库 r11(尤其是嵌套片段)的实际版本中的新功能。 ABS 4.2.0 可以实现吗? 谢谢, 米尔科 最佳答案 最新的支持库 r11 似乎在 ABS 4.2 上运行良好。我用 r11 版本
我有一个Android Studio项目,该项目依赖于build.gradle中设置的ActionBarSherlock: dependencies { compile 'com.action
我使用带有 3 个选项卡的 SherlockFragmentActivity。每个选项卡都包含一个 SherlockFragment。 如果我使用以下代码重新启动我的应用程序(以应用主题):(感谢 D
我正在使用 ActionBarSherlock、Scala、Sbt 和 android-plugin。一切都工作正常,但突然无法编译。我使用 git 回退到以前有效的提交,但它仍然会抛出以下 12 个
我试图弄清楚为什么我的 APK 在导出时有 21 MB 大。我正在使用 HoloEverywhere 和 ActionBarSherlock,因此我正在做一个实验,看看如果没有它们,我的 APK 会有
我有一个扩展 SherlockFragment 的类,它有一个 actionbarItem“过滤器” TabbedFragment.java public class TabbedFragment e
首先,我想说我已经修改了方法needsDividerBefore,现在菜单项之间出现了分隔线。但是,我想自定义这个分隔线,我尝试了前面提到的所有方法,但我没有成功。 其次,我想要的分隔线与使用的 fo
我有很多菜单项 - 有些是用 Java 代码定义的,有些是用 XML 定义的。 XML 中的那些都将 orderInCategory 设置为较高的值。 在代码中定义的项目中,有些有图标,有些没有。只有
我有一个使用 Viewpagerindicator 的应用程序。我正在使用它的标签部分。我使用黑色背景和默认的蓝色指示器颜色。我想在我的应用程序中添加一个操作栏,所以我开始使用 Actionbarsh
我是一名优秀的程序员,十分优秀!