SeekBar不会在Fragment中显示文本

时间:2014-10-02 20:37:54

标签: java android android-fragments android-seekbar

这是我的代码:

public class ScoreFragment extends Fragment {

public static final String TAG ="ScoreFragment";

    @Override
    public void onAttach(Activity activity) {
        super.onAttach(activity);
        Log.d(TAG, "onAttach");

    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if(savedInstanceState==null)
        {
            Log.d(TAG,"onCreate FIRST TIME");
        }
        else
        {
            Log.d(TAG,"onCreate SUBSEQUENT TIME");
        }

    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        super.onCreateView(inflater,container,savedInstanceState);
        final View v = inflater.inflate(R.layout.score_collection, container, false);

        final TextView sliderText = (TextView) v.findViewById(R.id.score_number);
        sliderText.setTextSize(48);

        //TODO: Find solution to find known bug in Android
       /* ActionBar  actionBar = ((ActionBarActivity) getActivity()).getSupportActionBar();
        actionBar.hide();*/

        SeekBar seekbar = (SeekBar) v.findViewById(R.id.seekBar);

        seekbar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {

                sliderText.setText("" + progress);
            }

            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {

            }

            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {

            }
        });


        Log.d(TAG,"onCreateView");
        return inflater.inflate(R.layout.score_collection, container, false);

    }

显示seekBar但不会在我的视图中增加或显示任何文本。

以下是我在视图中设置它的方法(在RelativeLayout中):

 <SeekBar
            android:layout_width="300sp"
            android:layout_height="wrap_content"
            android:id="@+id/seekBar"
            android:progress="0"
            android:max="10"
            android:minHeight="30sp"
            android:maxHeight="30sp"
            android:layout_below="@+id/score_number" 
            android:layout_centerHorizontal="true"/>

它实际上在我把它放入片段之前有效,所以我认为它与它在片段中有关但我不完全确定。

假设以0到10的等级递增1。

1 个答案:

答案 0 :(得分:0)

所以我弄清楚我做错了什么。这真是一个愚蠢的错误。我道歉。

以下是感兴趣的人的解决方案:

原始代码:

return inflater.inflate(R.layout.score_collection, container, false);

当我刚刚返回v(View v)时,我又重新回到了视图。

所以我将上面的return语句改为

return v; 

相反,它的工作原理。傻我。