在小屏幕上隐藏TextView
我试图在宽度小于500px的屏幕上隐藏两个TextViews。在小屏幕上隐藏TextView
我尝试以下(这不是我完整的代码,而且是必要的):
public class HeaderFooterFragment extends Fragment {
private TextView lable;
private TextView app;
@Override
public void onActivityCreated(Bundle savedInstanceState)
{
lable = (TextView) fragmentView.findViewById(R.id.lable);
app = (TextView) fragmentView.findViewById(R.id.app);
// some code...
super.onActivityCreated(savedInstanceState);
}
public void setLableInvisible()
{
lable.setVisibility(View.INVISIBLE);
app.setVisibility(View.INVISIBLE);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
// Inflate the layout for this fragment
fragmentView = inflater.inflate(R.layout.fragment_header_footer, container, false);
DisplayMetrics dm = new DisplayMetrics();
getActivity().getWindowManager().getDefaultDisplay().getMetrics(dm);
int screenWidth = dm.widthPixels;
if(screenWidth < 500){
setLableInvisible();
}
return fragmentView;
}
}
我的XML是:
<TextView
android:layout_width="wrap_content"
android:layout_height="@dimen/toolbar_height"
android:id="@+id/lable"
android:layout_weight="0.3"
android:textAlignment="gravity"
android:gravity="left"
android:text="@string/app_name"
android:textSize="@dimen/site_fontsize"
android:paddingTop="@dimen/site_paddingtop"
android:paddingLeft="@dimen/site_paddingleft"
android:textColor="@color/site_color"
android:scaleType="fitCenter"
android:visibility="visible"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="@dimen/toolbar_height"
android:layout_weight="0.05"
android:id="@+id/app"
android:textAlignment="gravity"
android:gravity="left"
android:text="@string/app_name_extra"
android:textSize="@dimen/apptitlex_fontsize"
android:paddingTop="@dimen/apptitlex_paddingtop"
android:paddingLeft="@dimen/apptitlex_paddingleft"
android:textColor="@color/colorAccent"
android:textAllCaps="true"
android:layout_alignParentRight="true"
android:scaleType="fitCenter"
android:visibility="visible"
/>
当我开始在智能手机的应用程序宽度为480像素,我得到一个空对象引用。如果我在更大的屏幕上启动应用,该应用不会崩溃。
在此先感谢。
林”不知道,该视图OnActivityCreated尚未创建,尝试在OnCreateView
lable = (TextView) fragmentView.findViewById(R.id.lable);
app = (TextView) fragmentView.findViewById(R.id.app);
好吧,这是我认为视图还没有创建标签,应用程序仍然是空的,如果初始化在OnActivityCreated – Chol
首先请检查流程通过screenWidth的印刷值和消息里面如果条件,也处理与其他因为icase如果()失败,应该有一个检查。 –
try this and delete onactivitycreated method
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
// Inflate the layout for this fragment
fragmentView = inflater.inflate(R.layout.fragment_header_footer, container, false);
lable = (TextView) fragmentView.findViewById(R.id.lable);
app = (TextView) fragmentView.findViewById(R.id.app);
DisplayMetrics dm = new DisplayMetrics();
getActivity().getWindowManager().getDefaultDisplay().getMetrics(dm);
int screenWidth = dm.widthPixels;
if(screenWidth < 500){
setLableInvisible();
}
return fragmentView;
}
初始化的TextView声明的TextView的onCreateView
代替onActivityCreated
部分
View RootView; //Declare Global
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
{
RootView = inflater.inflate(R.layout.fragment_header_footer, container, false);
lable = (TextView) RootView.findViewById(R.id.lable);
app = (TextView) RootView.findViewById(R.id.app);
// Add Your staff here
return RootView;
}
相反这个
下面的代码setLableInvisible();
使用隐藏的TextView
app.setVisibility(View.INVISIBLE)
类似地用户它第二TextView的。 谢谢
我得到一个空对象引用.Post错误日志 –
你在不同的值文件夹中使用2布局文件?这可以解释为什么意见不存在。 –